Oracle存储过程中如何进行HALF_EVEN舍入(舍入为-查字典问答网
分类选择

来自董聪的问题

  Oracle存储过程中如何进行HALF_EVEN舍入(舍入为最接近的整数)我在Oracle存储过程中想对一个运算结果进行舍入(但不是四舍五入),类似Java里的BigDecimal类里的ROUND_HALF_EVEN,也就是向最近的一方

  Oracle存储过程中如何进行HALF_EVEN舍入(舍入为最接近的整数)

  我在Oracle存储过程中想对一个运算结果进行舍入(但不是四舍五入),类似Java里的BigDecimal类里的ROUND_HALF_EVEN,也就是向最近的一方进行舍入,如果离两方一样,就向偶数的一方舍入.

  例如:(精确到小数点后第2位)

  0.124(舍入后)=0.12

  0.126(舍入后)=0.13

  0.125(舍入后)=0.12

  0.115(舍入后)=0.12

  我知道Oracle有个round函数,但它好像是四舍五入的,不是我要的舍入模式.

2回答
2020-07-25 09:19
我要回答
请先登录
甘咏梅

  查了些资料发下存储过程没有单一的一个数字函数可以满足你的要求,额,可能暂时没有我不知道下面的这个是不是你想要的结果(将round与trunc双剑合璧):SQL>CREATEORREPLACEPROCEDURECHESHI2(INUMBER)3AS4...

2020-07-25 09:20:26
董聪

  恩,你的思路和我的一样,需要用到round和trunc。不过你这个代码限制得太死了,不通用,因为我不一定是固定2位,而且小数点后第一位也不一定就是1。我自己写了一个通用的function,实现了我需要的舍入模式。其中需要判断要舍入的数的前一位是奇数还是偶数,来决定是用round还是trunc。不过还是谢谢你的帮助。

2020-07-25 09:25:03

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •