DECFLOAT
DECFLOAT [(precision)]
| Parameter | Beschreibung |
|---|---|
precision |
Genauigkeit in Dezimalstellen, entweder 16 oder 34.Standard ist 34. |
DECFLOAT ist ein SQL:2016 standardkonformer numerischer Typ, der Gleitkommazahlen präzise speichert (dezimaler Gleitkommatyp), im Gegensatz zu FLOAT oder DOUBLE PRECISION, die eine binäre Annäherung an die angebliche Genauigkeit bieten.
Der Typ wird als IEEE 754-Standardtypen Decimal64 (DECFLOAT(16)) oder Decimal128 (DECFLOAT(34)) gespeichert und übertragen.
Alle Zwischenrechnungen werden mit 34-stelligen Werten durchgeführt.
| Typ | Höchste Präzision | Geringste Präzision | Maximaler Exponent | Kleinster Wert | Größter Wert |
|---|---|---|---|---|---|
|
16 |
-383 |
+384 |
1E-398 |
9.9..9E+384 |
|
34 |
-6143 |
+6144 |
1E-6176 |
9.9..9E+6144 |
Beachten Sie, dass, obwohl der kleinste Exponent für DECFLOAT(16) -383 ist, der kleinste Wert einen Exponenten von -398 hat, aber 15 Stellen weniger.Und ähnlich für DECFLOAT(34) ist der kleinste Exponent -6143, aber der kleinste Wert hat einen Exponenten von -6176, aber 33 Stellen weniger.Der Grund dafür ist, dass die Präzision "geopfert" wurde, um einen kleineren Wert speichern zu können.
Dies ergibt sich aus der Speicherung des Wertes: als Dezimalwert mit 16 oder 34 Stellen und einem Exponenten.Zum Beispiel wird '1.234567890123456e-383' tatsächlich als Koeffizient '1234567890123456' und Exponent '-398' gespeichert, während '1E-398' als Koeffizient '1', Exponent '-398' gespeichert wird.