sql中的trunc和round函数

时间:2012-07-03 05:09:02

标签: 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

3 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:1)

ROUND与给定值的圆形数字有关。

TRUNC与截断给定值有关。

在给定示例的round情况下,小数点前第四位的四个位置用0填充。

但是在trunc的情况下,小数点前的第四位的四个位置替换为0.

答案 2 :(得分:0)

TRUNC - 根据第二个参数,它返回在第二个参数中指定的指定小数位。例如:

trunc(25.656) -- 25
trunc(25.656, 1) -- 25.6
trunc(25.656, 2) -- 25.65

ROUND - 将给定的数字四舍五入到最接近的值。例如:

round(66) -- 70
round(64) -- 60
round(65.7) -- 66
round(65.3) -- 65
相关问题