FirebirdSQL logo

QUANTIZE()

Disponible en

DSQL, PSQL

Syntaxe
QUANTIZE (decfloat_value, exp_value)
Table 1. paramètres de fonction QUANTIZE
Paramètre Description

decfloat_value

Une valeur ou une expression de type DECFLOAT ou être compatible avec le type DECFLOAT.

exp_value

Une valeur ou une expression à utiliser comme exposant ; doit être de type DECFLOAT ou être compatible avec le type DECFLOAT.

type de résultat de retour

DECFLOAT

La fonction QUANTIZE renvoie la valeur du premier argument mise à l’échelle en utilisant la deuxième valeur comme modèle. En d’autres termes, la fonction QUANTIZE renvoie la valeur de DECFLOAT égale en valeur (à l’exception de tout arrondi) et en signe à decfloat_value, et l’exposant égal en valeur à l’exposant exp_value.La fonction QUANTIZE peut être utilisée pour implémenter l’arrondi au chiffre le plus proche, comme l’arrondi au cent le plus proche en utilisant le mode d’arrondi défini DECFLOAT.

Le type de la valeur de retour est DECFLOAT(16) si les deux arguments sont DECFLOAT(16), sinon le type du résultat est DECFLOAT(34).

Note

La cible est l’exposant utilisé dans le format de stockage Decimal64 ou Decimal128 pour DECFLOAT de exp_value. Ce n’est pas nécessairement le même que l’exposant affiché dans des outils tels que isql. Par exemple, la valeur 1.23E+2 est un multiplicateur de 123 et une puissance de 0, alors que 1.2 est un multiplicateur de 12 et une puissance de -1.

Si la valeur decfloat est supérieure à la valeur exp, la valeur decfloat est multipliée par une puissance de dix et sa valeur est diminuée, si la valeur est inférieure, sa valeur est arrondie en utilisant le mode d’arrondi decfloat actuel et sa valeur est augmentée.

Lorsque l’exposant cible ne peut pas être atteint parce que le quotient dépasse la précision cible (16 ou 34 décimales), alors soit l’erreur “Decfloat float invalid operation”, soit NaN est retournée (selon la configuration actuelle des pièges decfloat).

Il n’y a pratiquement aucune restriction sur les exp_value.Cependant, dans presque tous les cas où NaN/sNaN/Infinity est utilisé, une exception sera levée(sauf si cela est autorisé par la configuration actuelle des pièges decfloat)

Si l’une des valeurs est NULL, le résultat de la fonction sera NULL, etc.

Example 1. Utilisation de la fonction QUANTIZE
select v, pic, quantize(v, pic) from examples;
V                       PIC                   QUANTIZE
======================= ===================== ==================
                   3.16                 0.001              3.160
                   3.16                 0.01               3.16
                   3.16                 0.1                3.2
                   3.16                 1                  3
                   3.16                 1E+1               0E+1
                   -0.1                 1                 -0
                      0                 1E+5               0E+5
                    316                 0.1              316.0
                    316                 1                316
                    316                 1E+1             3.2E+2
                    316                 1E+2               3E+2

TOTALORDER()

Disponible en

DSQL, PSQL

Syntaxe
TOTALORDER (decfloat1, decfloat2)
Table 1. paramètres de fonction TOTALORDER
Paramètre Description

decfloat1, decfloat2

Une valeur ou une expression de type DECFLOAT ou être compatible avec le type DECFLOAT.

type de résultat de retour

SMALLINT

La fonction TOTALORDER compare deux valeurs de type DECFLOAT, y compris les valeurs spéciales.La comparaison est exacte. Les zéros de queue sont pris en compte dans la comparaison.

La fonction renvoie :

  • -1 — si la première valeur est inférieure à la seconde ;

  • 0 — si les valeurs sont égales ;

  • 1 — si la première valeur est supérieure à la seconde.

Les comparaisons des valeurs DEFLOAT se font dans l’ordre suivant :

-nan < -snan < -inf < -0.1 < -0.10 < -0 < 0 < 0.10 < 0.1 < inf < snan < nan