在业务系统中处理小数精度,四舍五入,全舍弃,全进位的方法

在业务系统中处理小数精度,四舍五入,全舍弃,全进位的方法,第1张

在业务系统中处理小数精度,四舍五入,全舍弃,全进位的方法,第2张

在业务系统中,不同的客户对小数有不同的处理方式
,通过设置保留的小数位数和小数点后尾数的处理方式,可以灵活满足客户需求。

处理方法表


id号(1),-set id
金额点数(4,2)默认0.01,-金额精度1:精确到人民币0.1:精确到角度0.01:精确到四舍五入数字(1),-四舍五入边界-9:四舍五入0:。

建立oracle函数,传入设置id,传入金额,返回处理后的金额。

存储过程实现代码如下

或者替换函数get _ real _ number(-根据处理方法id获取已处理金额-计算金额
id in number,-处理方法ID
n _ amount in number]
-
-由Andrew创建
-。-修改时间修饰符实现的函数描述
-9全进0,全进4,全进5
-十进制字符
v_keep数;-保留的小数位
v _舍入数字;-舍入边界
v _ amount number:= 0;-退回金额
begin

从处理方法表
中选择amount dot,nvl (rounding,0)到v _ amount dot,v _ rounding,其中id = sale _ place _ id
v _ keep:= length(v _ amount dot)-instr(v _ amount dot,',') ;-保留的小数位数
如果v _ rounding = 9那么-处理所有丢弃
v _ amount: = trunc (n _ amount,v _ keep);
end if;

如果v _ rounding = 4那么-处理舍入
v _ amount: = round (n _ amount,v _ keep);
end if;

如果v _ rounding = 0那么-处理全进位
v _ amount: = trunc (n _ amount,v _ keep);-小数刚好等于所需数
如果v _ amount n _ amount那么-如果截断的数与原数不同,则输入1
v _ amount:= v _ amount+to _ number(v _ amount dot);
end if;

返回v _ amount


异常
当其他人随后返回n _ amount

end get _ real _ number

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 在业务系统中处理小数精度,四舍五入,全舍弃,全进位的方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情