Foxtable(狐表)用户栏目专家坐堂 → 四舍五入


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

主题:四舍五入

帅哥,在线噢!
lihe60
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
四舍五入  发帖心情 Post By:2009/12/29 10:00:00 [只看该作者]

Convert([数量] * [单价] * (1 - [折扣]) * 100, 'System.Int64') / 100
不能用,贺老师能增加一个四舍五入的函数吗?如
函数名([金额],3),对金额小数点后三位四舍五入。


 回到顶部
帅哥,在线噢!
lihe60
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2009/12/29 10:01:00 [只看该作者]

四舍五入,很重要。

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


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

当然能用的。

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


加好友 发短信
等级:小狐 帖子:374 积分:3147 威望:0 精华:0 注册:2009/2/3 9:55:00
  发帖心情 Post By:2009/12/29 10:13:00 [只看该作者]

如何实现四舍五入

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

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

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

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

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

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

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


 回到顶部
帅哥,在线噢!
lihe60
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2009/12/29 10:17:00 [只看该作者]

Convert([数量] * [单价] * (1 - [折扣]) * 100, 'System.Int64') / 100
这个代码写不到datacolchanged事件中去的。

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


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

代码是代码,表达式是表达式,各有自己的语法和函数,岂能混用?

代码用round函数


 回到顶部
帅哥,在线噢!
lihe60
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6842 积分:43288 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2009/12/29 10:43:00 [只看该作者]

round用起来比较复杂,能不能简单点,如round(val,2)这样的格式。

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


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

round复杂?
这样的代码还复杂:

Math.Round(4.567,2)

图片点击可在新窗口打开查看
[此贴子已经被作者于2009-12-29 10:53:36编辑过]

 回到顶部