直接刊登给客户的邮件:
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 )