Der Datentyp DECIMAL ist eine systemunabhängige Methode für die Darstellung von Zahlen mit bis zu 32 signifikanten Ziffern, mit oder ohne Dezimaltrennzeichen und mit Exponenten im Bereich von -128 bis +126. ESQL/C stellt Routinen bereit, die die Konvertierung von Zahlen des Typs DECIMAL in jeden und aus jedem Datentyp vereinfachen, der in der Programmiersprache C zulässig ist. Zahlen des Typs DECIMAL bestehen aus einem Exponenten und einer Mantisse (oder Nachkommastellen) zur Basis 100. Im normalisierten Format muss die erste Ziffer der Mantisse größer als 0 sein.
Der Datentyp DECIMAL wird intern durch die Struktur dec_t dargestellt. Die Struktur decimal und die Typdefinition dec_t sind in der Headerdatei decimal.h enthalten, die Bestandteil des Produkts 'ESQL/C' ist. Nehmen Sie diese Datei in alle C-Quellendateien auf, die eine der Funktionen für Dezimalzahlen verwenden.
Alle Operationen für Zahlen des Typs decimal müssen unter Verwendung der folgenden ESQL/C-Bibliotheksfunktionen für den Datentyp decimal ausgeführt werden. Andere Operationen, Änderungen oder Analysen können zu unvorhersehbaren Ergebnissen führen.
| Funktionsname | Beschreibung |
|---|---|
| deccvasc( ) | Konvertiert den C-Typ int1 in den Typ DECIMAL. |
| dectoasc( ) | Konvertiert den Typ DECIMAL in den C-Typ int1. |
| deccvint( ) | Konvertiert den C-Typ int in den Typ DECIMAL. |
| dectoint( ) | Konvertiert den Typ DECIMAL in den C-Typ int. |
| deccvlong( ) | Konvertiert den C-Typ int4 in den Typ DECIMAL. |
| dectolong( ) | Konvertiert den Typ DECIMAL in den C-Typ int4. |
| deccvflt( ) | Konvertiert den C-Typ float in den Typ DECIMAL. |
| dectoflt( ) | Konvertiert den Typ DECIMAL in den C-Typ float. |
| deccvdbl( ) | Konvertiert den C-Typ double in den Typ DECIMAL. |
| dectodbl( ) | Konvertiert den Typ DECIMAL in den C-Typ double. |
| decadd( ) | Addiert zwei Zahlen des Typs DECIMAL. |
| decsub( ) | Subtrahiert zwei Zahlen des Typs DECIMAL. |
| decmul( ) | Multipliziert zwei Zahlen des Typs DECIMAL. |
| decdiv( ) | Dividiert zwei Zahlen des Typs DECIMAL. |
| deccmp( ) | Vergleicht zwei Zahlen des Typs DECIMAL. |
| deccopy( ) | Kopiert eine Zahl des Typs DECIMAL. |
| dececvt( ) | Konvertiert einen Wert des Typs DECIMAL in eine ASCII-Zeichenfolge. |
| decfcvt( ) | Konvertiert einen Wert des Typs DECIMAL in eine ASCII-Zeichenfolge. |
Weitere Informationen zu einzelnen Funktionen enthält die Veröffentlichung IBM Informix ESQL/C Programmer's Manual.