sql中的trunc和round函数

lak*_*nga 3 sql oracle truncate rounding negative-number

使用否定参数进行截断和舍入是否相同?

       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
Run Code Online (Sandbox Code Playgroud)

Ber*_*ase 9

不,行为取决于有效数字的值(在您的情况下,第3位数字(3)是重要数字,因为它低于5 round并且trunc执行相同的操作)

尝试select trunc(125456.76,-4) from dual(结果是120000)vs select round(125456.76,-4) from dual(结果是130000).现在当有效数字是5(或更高)时,结果truncround不同.