写工资中的公积金列round 四舍五入问题

直接刊登给客户的邮件:

 

1、针对住房公积金项,有的人的值四舍五入了,有的人的值没有四舍五入,  我已经检查代码了代码没有问题,是由。Net  开发平台的机制round 函数决定的。

此机制是按照IEEE 规定的舍入标准,舍入的具体规则是: 四舍六入五取偶。

例如:

Round(3.44, 1); //Returns 3.4.  四舍

    Round(3.451, 1); //Returns 3.5  五后非零就进一

    Round(3.45, 1); //Returns 3.4. 五后皆零看奇偶, 五前为偶应舍

    Round(3.75, 1);  //Returns 3.8  五后皆零看奇偶,五前为奇要进一

    Round(3.46, 1); //Returns 3.5. 六入

 

2、针对在。Net中可以重载round函数来实现真正的“四舍五入”问题,但是工资addon无法使用此方法解决(因为我们是定义的公式,公式中定义的round ,跟系统的round 还是有差别的)

我想了个别的办法能够实现我们所经常使用的“四舍五入“问题

 

    Round(3.44+0.001, 1); //Returns 3.4.

 

    Round(3.451+0001, 1); //Returns 3.5 

 

    Round(3.45+0.001, 1); //Returns 3.5     上一封邮件有误

 

    Round(3.75+0.001, 1);  //Returns 3.8 

 

    Round(3.46+0.001, 1); //Returns 3.5.

 

 

3、所以我们的“公积金金额”项 和“单位公积金金额“ 项代码公式 IF( U_PRN001 > 10580 , ROUND( 10580 * U_PRN028 , 0 ) , ROUND( U_PRN001 * U_PRN028  , 0 )

更改为: IF( U_PRN001 > 10580 , ROUND( 10580 * U_PRN028+0.001 , 0 ) , ROUND( U_PRN001 * U_PRN028 + 0.001 , 0 )

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值