Foxtable(狐表)用户栏目专家坐堂 → 四舍五入 表达式列计算结果不准确,经常出错


  共有6235人关注过本帖树形打印复制链接

主题:四舍五入 表达式列计算结果不准确,经常出错

帅哥哟,离线,有人找我吗?
louis_sun
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
四舍五入 表达式列计算结果不准确,经常出错  发帖心情 Post By:2013/7/15 13:54:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table

表达式并没有提供传统的四舍五入函数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-15 16:06:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
louis_sun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
  发帖心情 Post By:2013/7/15 14:01:00 [显示全部帖子]

?????????????????????????

 回到顶部
帅哥哟,离线,有人找我吗?
louis_sun
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
  发帖心情 Post By:2013/7/15 14:23:00 [显示全部帖子]

可是为什么我的这个项目里,“公企明细”表里的“计费单价”列显示的结果是43.72.。
用excel算的结果却能正常显示43.73。
上面两个方法我都试了,都不好使啊!
[此贴子已经被作者于2013-7-15 14:26:25编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
louis_sun
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
  发帖心情 Post By:2013/7/15 14:32:00 [显示全部帖子]

???????????????????????????????????????????????

 回到顶部
帅哥哟,离线,有人找我吗?
louis_sun
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
  发帖心情 Post By:2013/7/15 14:35:00 [显示全部帖子]

??????????????????????
坐等回复!!!!!!!!!!!!!!!!!

 回到顶部
帅哥哟,离线,有人找我吗?
louis_sun
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
  发帖心情 Post By:2013/7/15 14:36:00 [显示全部帖子]

例子在1楼。。。。

 回到顶部
帅哥哟,离线,有人找我吗?
louis_sun
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
  发帖心情 Post By:2013/7/15 14:37:00 [显示全部帖子]

excel 公式

=ROUND(F34*((E34-3)/0.3*0.05+1),2)

 回到顶部
帅哥哟,离线,有人找我吗?
louis_sun
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
  发帖心情 Post By:2013/7/15 14:45:00 [显示全部帖子]

43.725 不是保留了3位么?
难道要先保留3位,再进行4舍5入到 保留两位?
不能直接到43.73????
难道以后所有的四射五入操作都要这么操作了?
[此贴子已经被作者于2013-7-15 14:46:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
louis_sun
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
  发帖心情 Post By:2013/7/15 15:03:00 [显示全部帖子]

使用Decimal,在列属性中,将小数位数设置为2位 
显示的是43.73了。
但是在后面公式列“计费金额”的计算过程中,计费单价还是按照43.725来参与计算的。

这个数据管理软件,准确的数据计算无法完成??那我用你们的软件管理上百万条数据的时候,还需要每一条查看计算是否出错?

 回到顶部
帅哥哟,离线,有人找我吗?
louis_sun
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
  发帖心情 Post By:2013/7/15 15:04:00 [显示全部帖子]

难道我这个计算功能就无法实现了?

 回到顶部
总数 19 1 2 下一页