以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 四舍五入 表达式列计算结果不准确,经常出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=37918) |
||||
-- 作者:louis_sun -- 发布时间:2013/7/15 13:54:00 -- 四舍五入 表达式列计算结果不准确,经常出错
例如金额列原来的计算公式为: [数量] * [单价] * (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-15 16:06:28编辑过]
|
||||
-- 作者:louis_sun -- 发布时间:2013/7/15 14:01:00 -- ????????????????????????? |
||||
-- 作者:Bin -- 发布时间:2013/7/15 14:02:00 -- 你不是使用代码减少0.005了? 否则0.006怎么会算出0.01来. |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/7/15 14:04:00 -- Convert(0.005 *100 + 0.00000001, \'System.Int64\') / 100 |
||||
-- 作者:Bin -- 发布时间:2013/7/15 14:10:00 -- 或者 Convert(0.005*100, \'System.Decimal\') / 100 |
||||
-- 作者:louis_sun -- 发布时间:2013/7/15 14:23:00 -- 可是为什么我的这个项目里,“公企明细”表里的“计费单价”列显示的结果是43.72.。 用excel算的结果却能正常显示43.73。 上面两个方法我都试了,都不好使啊!
[此贴子已经被作者于2013-7-15 14:26:25编辑过]
|
||||
-- 作者:louis_sun -- 发布时间:2013/7/15 14:32:00 -- ??????????????????????????????????????????????? |
||||
-- 作者:louis_sun -- 发布时间:2013/7/15 14:35:00 -- ?????????????????????? 坐等回复!!!!!!!!!!!!!!!!!
|
||||
-- 作者:Bin -- 发布时间:2013/7/15 14:35:00 -- 例子发出来看看.包括你Excel计算的例子. |
||||
-- 作者:louis_sun -- 发布时间:2013/7/15 14:36:00 -- 例子在1楼。。。。 |