функция trunc и round в sql


Является ли trunc и round одним и тем же с отрицательными аргументами?

       SQL> select round(123456.76,-4) from dual;

        ROUND(123456.76,-4)
         -------------------
         120000

         SQL> select trunc(123456.76,-4) from dual;

          TRUNC(123456.76,-4)
          -------------------
         120000
2 2

2 ответа:

Нет, поведение зависит от значения значащей цифры (3-я цифра (3) является значимой в вашем случае, так как она ниже 5 round и trunc делают то же самое)

Попробуйте select trunc(125456.76,-4) from dual (результат 120000) против select round(125456.76,-4) from dual (результат 130000). Теперь, когда значащая цифра равна 5 (или выше), результаты trunc и round различаются.

ROUND относится к круглой фигуре данного значения.

TRUNC связано с усечением заданных значений.

В round случае данного примера, четыре места до 4-го места до десятичной точки, дополненной 0.

, а в trunc случае, четырех мест по 4 места перед запятой заменена на 0.