SET DECFLOAT ROUND
Оператор SET DECFLOAT ROUND изменяет режим округления для текущей сессии.Поддерживаются следующие режимы округления совместимые со стандартом IEEE:
- CEILING
- 
Округление сверху. Если все отбрасываемые цифры равны нулю или знак числа отрицателен, то последняя не отбрасываемая цифра остаётся прежней. В противном случае последняя не отбрасываемая цифра инкрементируется на единицу (округляется в большую сторону). 
- UP
- 
Округление по направлению от нуля (усечение с приращением). Отбрасываемые значения игнорируются. 
- HALF_UP
- 
Округление к ближайшему значению. Используется по умолчанию. Если результат равноудаленный, выполняется округление в большую сторону. Если отбрасываемые значения больше чем или равны половине (0,5) единицы в следующей левой позиции, последняя не отбрасываемая цифра инкрементируется на единицу (округляется в большую сторону). В противном случае отбрасываемые значения игнорируются. 
- HALF_EVEN
- 
Округление к ближайшему значению. Если результат равноудаленный, выполняется округление так, чтобы последняя цифра была четной. Если отбрасываемые значения больше половины (0,5) единицы в следующей левой позиции, последняя не отбрасываемая цифра инкрементируется на единицу (округляется в большую сторону). Если они меньше половины, результат не корректируется, то есть отбрасываемые знаки игнорируются. В противном случае, когда отбрасываемые значения точно равны половине, последняя не отбрасываемая цифра не меняется, если она является четной и инкрементируется на единицу (округляется в большую сторону) в противном случае (чтобы получить четную цифру). Этот режим округления называется также банковским округлением и дает ощущение справедливого округления. 
- HALF_DOWN
- 
Округление к ближайшему значению. Если результат равноудаленный, выполняется округление в меньшую сторону. Если отбрасываемые значения больше чем или равны половине (0,5) единицы в следующей левой позиции, последняя не отбрасываемая цифра декрементируется на единицу (округляется в меньшую сторону). В противном случае отбрасываемые значения игнорируются. 
- DOWN
- 
Округление по направлению к нулю (усечение). Отбрасываемые значения игнорируются. 
- FLOOR
- 
Округление снизу. Если все отбрасываемые цифры равны нулю или знак положителен, последняя не отбрасываемая цифра не меняется. В противном случае (знак отрицателен) последняя не отбрасываемая цифра инкрементируется на единицу. 
- REROUND
- 
Округление к большему значению, если округляется 0 или 5, в противном случае округление происходит к меньшему значению. 
SET DECFLOAT ROUND HALF_DOWN;| Режимы округления | 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 |