Foxtable(狐表)用户栏目专家坐堂 → round2()问题


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

主题:round2()问题

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


加好友 发短信
等级:幼狐 帖子:95 积分:1321 威望:0 精华:0 注册:2012/9/16 14:32:00
round2()问题  发帖心情 Post By:2013/1/21 23:51:00 [显示全部帖子]

老师好!,我偶然发现round2()函数结算结果不准确,例子如下:
output.show("四舍五入前:" & 3930*0.0045)
output.show("四舍五入后:" & round2(3930*0.0045,2))
得到的结果是:
四舍五入前:17.685
四舍五入后:17.68
round2()函数并没有严格四舍五入,请老师解答是什么问题?

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


加好友 发短信
等级:幼狐 帖子:95 积分:1321 威望:0 精华:0 注册:2012/9/16 14:32:00
  发帖心情 Post By:2015/11/2 16:34:00 [显示全部帖子]

我的自定义函数管用

'四舍五入公式
Dim a As Decimal=args(0)'数据原始值
Dim b As Decimal=args(1)'保留小数位数
Dim c As Decimal '返回值
If int(a*10^(b+1)) Mod 10<5 Then
    c=(int(a*10^(b+1))-int(a*10^(b+1)) Mod 10)*10^-(b+1)
Else
    c=(int(a*10^(b+1))+10-int(a*10^(b+1)) Mod 10)*10^-(b+1)
End If
Return c


 回到顶部