SET DECFLOAT ROUND
L'opérateur SET DECFLOAT ROUND
change le mode d'arrondi pour la session en cours. Les modes d'arrondi suivants, compatibles IEEE, sont pris en charge :
- PLAFOND
Arrondir par le haut. Si tous les chiffres à écarter sont des zéros ou si le signe du nombre est négatif, le dernier chiffre non écarté reste inchangé. Sinon, le dernier chiffre non rejeté est incrémenté de un (arrondi au chiffre supérieur).
- UP
Arrondissement à partir de zéro (troncature avec incrément). Les valeurs rejetées sont ignorées.
- HALF_UP
Arrondi à la valeur la plus proche. Cette option est utilisée par défaut. Si le résultat est équidistant, l'arrondi au chiffre supérieur est effectué. Si les valeurs écartées sont supérieures ou égales à la moitié (0,5) de un à la position gauche suivante, le dernier chiffre non écarté est incrémenté de un (arrondi vers le haut). Sinon, les valeurs rejetées sont ignorées.
- HALF_EVEN
Arrondir à la valeur la plus proche. Si le résultat est équidistant, l'arrondi est effectué de sorte que le dernier chiffre soit un nombre pair. Si les valeurs écartées sont supérieures à la moitié (0,5) de un à la position gauche suivante, le dernier chiffre non écarté est incrémenté de un (arrondi vers le haut). S'ils sont inférieurs à la moitié, le résultat est non corrigé (c'est-à-dire que les chiffres écartés sont ignorés). Sinon, lorsque les valeurs écartées sont exactement la moitié, le dernier chiffre non écarté est inchangé s'il s'agit d'un nombre pair et incrémenté de un (arrondi vers le haut) sinon (pour obtenir un nombre pair). Ce mode d'arrondi est également appelé arrondi bancaire et donne une impression d'arrondi équitable.
- HALF_DOWN
Arrondir à la valeur la plus proche. Si le résultat est équidistant, l'arrondi au chiffre inférieur est effectué. Si les valeurs écartées sont supérieures ou égales à la moitié (0,5) de un dans la position gauche suivante, le dernier chiffre non écarté est décrémenté de un (arrondi vers le bas). Sinon, les valeurs rejetées sont ignorées.
- DOWN
Arrondi vers zéro (troncature). Les valeurs rejetées sont ignorées.
- ÉTAGE
Arrondi vers le bas. Si tous les chiffres écartés sont des zéros ou si le signe est positif, le dernier chiffre non écarté ne change pas. Dans le cas contraire (signe négatif), le dernier chiffre non rejeté est incrémenté de un.
- REROUND
Arrondi à une valeur supérieure si l'arrondi est de 0 ou 5, sinon l'arrondi est à une valeur inférieure.
SET DECFLOAT ROUND HALF_DOWN;
Modes d'arrondi | 12.341 | 12.345 | 12.349 | 12.355 | 12.405 | -12.345 |
---|---|---|---|---|---|---|
CEILING | 12.35 | 12.35 | 12.35 | 12.36 | 12.41 | -12.34 |
UP | 12.35 | 12.35 | 12.35 | 12.36 | 12.41 | -12.35 |
HALF_UP | 12.34 | 12.35 | 12.35 | 12.36 | 12.41 | -12.35 |
HALF_EVEN | 12.34 | 12.34 | 12.35 | 12.36 | 12.40 | -12.34 |
HALF_DOWN | 12.34 | 12.34 | 12.35 | 12.35 | 12.40 | -12.34 |
DOWN | 12.34 | 12.34 | 12.34 | 12.35 | 12.40 | -12.34 |
FLOOR | 12.34 | 12.34 | 12.34 | 12.35 | 12.40 | -12.35 |
REROUND | 12.34 | 12.34 | 12.34 | 12.36 | 12.41 | -12.34 |