以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 这个代码对否?提示有问题? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=7992) |
-- 作者:andy621 -- 发布时间:2010/8/27 13:51:00 -- 这个代码对否?提示有问题? SELECT CASE e.DataCol.Name
四舍五入dcl,到3位小数是否这么写?Round(dcl,3) |
-- 作者:狐狸爸爸 -- 发布时间:2010/8/27 14:59:00 -- math.round |
-- 作者:blackzhu -- 发布时间:2010/8/27 15:09:00 -- Round 将值舍入到最接近的整数或指定的小数位数。 语法: Round(Value, Digits) Value: 数值 例如: Output.Show(Math.Round( 3.44, 1)) \'显示3.4Output.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 -- 发布时间:2010/8/27 16:48:00 -- 以下是引用blackzhu在2010-8-27 15:09:00的发言:
Round 将值舍入到最接近的整数或指定的小数位数。 语法: Round(Value, Digits) Value: 数值 例如: Output.Show(Math.Round( 3.44, 1)) \'显示3.4Output.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) |
-- 作者:狐狸爸爸 -- 发布时间:2010/8/27 16:53:00 -- 说明就是这么写的:math.round 看例子就明白 |