以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  Round用法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=13406)

--  作者:明丰
--  发布时间:2011/10/11 10:08:00
--  Round用法

  Round取值方法:

 

1四舍六入五成双

 

如果要保留n位小数位,如果原值小数位数是n+1,一般情况下是“四舍六入五成双”, 2.195 4.395保留2小数时例外,即5不进位

 

2四舍五入

 

如果希望四舍五入保留小数位,只要增加原值小数位即可,如原值加上0.00000001。(如:output.show(math.round((4.45 + 0.00000001),1))

 

另外Val转换数值时,如果是数字开头的混合字符,用Val转换时会出错(如output.show(val("12AB")))


--  作者:狐狸爸爸
--  发布时间:2011/10/11 10:10:00
--  
Return round2(1.23456,2)
--  作者:明丰
--  发布时间:2011/10/11 10:22:00
--  
什么意思?
--  作者:狐狸爸爸
--  发布时间:2011/10/11 10:25:00
--  
roun2也是四舍五入,符合你的要求
--  作者:明丰
--  发布时间:2011/10/11 10:32:00
--  

“roun2也是四舍五入”

建议加入到帮助里面,谢谢!


--  作者:明丰
--  发布时间:2011/10/11 10:39:00
--  

Round取值有点乱,如:

output.show(math.round(1.285,2) ) \'不进位
output.show(math.round(1.245,2) ) \'进位


--  作者:新福星
--  发布时间:2017/8/4 6:13:00
--  

Round取值有点乱,如:

output.show(math.round(1.285,2) ) \'不进位
output.show(math.round(1.245,2) ) \'进位  

看了Round定义是发现1.245 的结果是 1.25.和定义有出入?



--  作者:有点甜
--  发布时间:2017/8/4 8:43:00
--  

用format就好了。或者你重写round2方法,在全局代码写

 

Public Function Round2(val As Double, num As Integer) As Double
    Return Format(val, "#." & "00000000000".Substring(0,num))
End Function