oracle中的银行家算法!

cmaboy 2006-12-11 04:00:34
在oracle中的round是四舍五入,但是,在很多的统计汇总中,四舍五入只是一个画在空中的饼!根本无法满足实际统计、报表输出的要求。
所以,我想用银行家算法,也就是四舍六入五向偶靠拢的方式!

请问,有谁知道在oracle中是否有这个?定义的名称是什么?
...全文
355 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingkingkingking 2006-12-12
  • 打赏
  • 举报
回复
自己定义函数
山林73 2006-12-12
  • 打赏
  • 举报
回复
CREATE OR REPLACE FUNCTION f_Round (
n NUMBER,
p NUMBER
) RETURN NUMBER is
vn_a number;
vn_b number;
BEGIN
vn_a := n*power(10,p);
vn_b := trunc(vn_a);
IF vn_a - vn_b = 0.5 THEN
IF mod( vn_b, 2)=1 THEN
RETURN trunc(n,p) ;
END IF;
END IF;
RETURN round(n,p);
end f_Round;

jdsnhan 2006-12-12
  • 打赏
  • 举报
回复
oracle本身是没有的。
lz可以自己写个函数来代替round函数
多壮志 2006-12-11
  • 打赏
  • 举报
回复
这不就是一个自己定义的函数吗? 为什么不自己动手了?
cmaboy 2006-12-11
  • 打赏
  • 举报
回复
所谓的银行家舍入法:和四舍五入查不多,只不过,逻辑为四舍六入五靠偶进入!

简单的四舍五入统计的结果,误差太大,到最后,都成错误了!
所以,需要采用这个,最后的误差相对小些!跟接近真实数据
xiaoxiao1984 2006-12-11
  • 打赏
  • 举报
回复
没看懂:(
cmaboy 2006-12-11
  • 打赏
  • 举报
回复
这个也叫银行家舍入法!期待高手指点!
tgm78 2006-12-11
  • 打赏
  • 举报
回复
不甚了解
期待高手

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧