Foxtable(狐表)官方栏目BUG收集 → 四舍五入问题


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

主题:四舍五入问题

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


加好友 发短信
等级:婴狐 帖子:21 积分:186 威望:0 精华:0 注册:2013/7/15 11:27:00
四舍五入问题  发帖心情 Post By: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


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/7/16 16:14:00 [只看该作者]

将参与计算的列的数据类型,设置为双进度小数型即可。

 回到顶部