Foxtable(狐表)用户栏目专家坐堂 → 这个代码对否?提示有问题?


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

主题:这个代码对否?提示有问题?

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


加好友 发短信
等级:幼狐 帖子:111 积分:1258 威望:0 精华:1 注册:2008/9/12 9:06:00
这个代码对否?提示有问题?  发帖心情 Post By:2010/8/27 13:51:00 [只看该作者]

SELECT CASE e.DataCol.Name
CASE "生产数量","额定产量"
Dim dcl As Double
dcl=(e.DataRow("生产数量")/e.DataRow("额定产量"))*100
e.DataRow("达成率")=Round(dcl,3)
End Select

 

四舍五入dcl,到3位小数是否这么写?Round(dcl,3)


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


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

math.round

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/8/27 15:09:00 [只看该作者]

Round

将值舍入到最接近的整数或指定的小数位数。

语法:

Round(Value, Digits)

Value: 数值
Digits: 要保留的小数位数。

例如:

Output.Show(Math.Round(3.44, 1)) '显示3.4
Output.Show(Math.Round(
3.45, 1)) '显示3.4
Output.Show(Math.Round(
3.46, 1))
'显示3.5

可以看到Round函数不是严格的四舍五入,而是“四舍六入五成双”,意思是小于五的舍掉,大于五进位,如果等于五,则比较上一位,如果上一位是奇数,则进位,如果是偶数,则舍除,这样等于五的时候,结果始终等于最接近的偶(双)数,也就是成双。

如果你要严格地四舍五入,可以参考下面的代码:

Dim Digits As Integer = 2 '要保留的小数位数,根据需要修改
Dim
Value As Double = 1.245 '要进行四舍五入的小数值
Value = Math.Floor(Value * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
Output.Show(Value)
'显示四舍五入


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


加好友 发短信
等级:幼狐 帖子:111 积分:1258 威望:0 精华:1 注册:2008/9/12 9:06:00
  发帖心情 Post By:2010/8/27 16:48:00 [只看该作者]

以下是引用blackzhu在2010-8-27 15:09:00的发言:

Round

将值舍入到最接近的整数或指定的小数位数。

语法:

Round(Value, Digits)

Value: 数值
Digits: 要保留的小数位数。

例如:

Output.Show(Math.Round(3.44, 1)) '显示3.4
Output.Show(Math.Round(
3.45, 1)) '显示3.4
Output.Show(Math.Round(
3.46, 1))
'显示3.5

可以看到Round函数不是严格的四舍五入,而是“四舍六入五成双”,意思是小于五的舍掉,大于五进位,如果等于五,则比较上一位,如果上一位是奇数,则进位,如果是偶数,则舍除,这样等于五的时候,结果始终等于最接近的偶(双)数,也就是成双。

如果你要严格地四舍五入,可以参考下面的代码:

Dim Digits As Integer = 2 '要保留的小数位数,根据需要修改
Dim
Value As Double = 1.245 '要进行四舍五入的小数值
Value = Math.Floor(Value * 10 ^ Digits + 0.5) / 10 ^ Digits '四舍五入
Output.Show(Value)
'显示四舍五入

我就是按这个写的,呵呵,

就是不明白math,

说明怎么不这么写:

Math.Round(Value, Digits)


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


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

说明就是这么写的:math.round

看例子就明白


 回到顶部