以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  BUG收集  (http://foxtable.com/bbs/list.asp?boardid=12)
----  四舍五入问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=12&id=37919)

--  作者:louis_sun
--  发布时间:2013/7/15 14:00:00
--  四舍五入问题

表达式并没有提供传统的四舍五入函数Round,我们只能用Convert函数来间接实现。

例如金额列原来的计算公式为:

[数量] * [单价] * (1 - [折扣])

为了保留两位小数,可以将公式改为:

Convert([数量] * [单价] * (1 - [折扣]) * 100, \'System.Int64\') / 100

原理很简单:将计算结果乘以100,然后取整,最后除以100。

如果你要保留三位小数,将表达式中的100改为1000即可,其余类推。



为什么我的机器,输入  Convert(0.005*100, \'System.Int64\') / 100 

显示的结果 是 0

Convert(0.006*100, \'System.Int64\') / 100  

显示的结果才是0.01


--  作者:狐狸爸爸
--  发布时间:2013/7/16 16:14:00
--  
将参与计算的列的数据类型,设置为双进度小数型即可。