以文本方式查看主题 - 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 -- 将参与计算的列的数据类型,设置为双进度小数型即可。 |