以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助][讨论]为什么是五舍六入?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=183427)

--  作者:ZXY
--  发布时间:2022/11/4 16:25:00
--  [求助][讨论]为什么是五舍六入?
在表达式计算中,新版本部分数据出现五舍六入情况,为什么?请大师指教
示例如图:
图片点击可在新窗口打开查看
教护提高为表达式列,公式:([岗位工资] + [薪级工资]) * 0.1
前三列数据为短整型,最后一列为单精度小数
示例程序见附件。
[此贴子已经被作者于2022/11/4 16:45:34编辑过]

--  作者:有点蓝
--  发布时间:2022/11/4 16:43:00
--  
Foxtable使用的默认规则,都是四舍六入五成双:https://www.baidu.com/baidu?word=四舍六入五成双
--  作者:ZXY
--  发布时间:2022/11/4 16:58:00
--  
请教大侠,如何保证四舍五入?表达式如何修改?
[此贴子已经被作者于2022/11/4 16:58:29编辑过]

--  作者:有点蓝
--  发布时间:2022/11/4 17:30:00
--  
([岗位工资] + [薪级工资]) * 0.1 + 0.1
--  作者:ZXY
--  发布时间:2022/11/4 17:31:00
--  
请大侠检查确认:
([岗位工资] + [薪级工资]) * 0.1 + IIF(SubString(Convert(10000 + [岗位工资] + [薪级工资],\'System.String\'),4,2) In (\'05\',\'25\',\'45\',\'65\',\'85\'),0.1,0)
经过实验,上述方法可行,但不知是否合理或者还有什么疏漏,请指教

--  作者:有点蓝
--  发布时间:2022/11/4 17:38:00
--  
测试,有问题再说
--  作者:ZXY
--  发布时间:2022/11/4 20:45:00
--  
谢谢大侠!!
--  作者:ZXY
--  发布时间:2022/11/4 20:51:00
--  
3420 + 2654 结果应该是607,如果+0.1,结果显示608,出现错误


--  作者:hitzfeld
--  发布时间:2022/11/5 0:42:00
--  
[分享]真正的四舍五入函数 - 


--  作者:有点蓝
--  发布时间:2022/11/5 9:17:00
--  
([岗位工资] + [薪级工资]) * 0.1 + IIF(SubString(Convert([岗位工资] + [薪级工资],\'System.String\'),len(Convert([岗位工资] + [薪级工资],\'System.String\')) - 1,1) = \'5\',0.1,0)