VB6中文版说Round函数是四舍五入函数,实际上这个函数采用的四舍六入五留双。VB的Round所采用的算法是这样的:
1.25留一位,则1.2=round(1.25)
如果是1.35,则1.4=round(1.35)
奇进偶不进。这样在一大串需要四舍五入的数相加相减相乘时误差小一点。eg:1.25+1.35+1.45+1.55+1.15+1.65=8.4=round(1.25)+round(1.35)+round(……
ROUND函数符合国家和国际标准,该函数是正确的。原先的四舍五入只是一个简化。
在微软的Knowledge Base的文章:“Q194983 PRB: Round Function Different in VBA 6 and Excel Spreadsheet”和微软的Knowledge Base的文章:“Q189847 INFO: New String and Format Functions in Visual Basic 6.0”中都指出Round函数实行Banker舍入,而不是我们习惯的算术舍入(四舍五入)。你可以参考微软的Knowledge Base的文章:“Q196652 HOWTO: Implement Custom Rounding Procedures”,它对于舍入问题有详细的讨论。一、VB6中文版说Round函数是四舍五入函数,实际上这个函数采用的四舍六入五留双。
二、Round所采用的算法是这样的:
1、1.25留一位,则1.2=round(1.25)
2、如果是1.35,则1.4=round(1.35)
3、奇进偶不进。这样在一大串需要四舍五入的数相加相减相乘时误差小一点。
eg:1.25+1.35+1.45+1.55+1.15+1.65=8.4=round(1.25)+round(1.35)+round(……
一、ROUND函数符合国家和国际标准,该函数是正确的。原先的四舍五入只是一个简化。
二、在微软的Knowledge Base的文章:“Q194983 PRB: Round Function Different in VBA 6 and Excel Spreadsheet”和微软的Knowledge Base的文章:“Q189847 INFO: New String and Format Functions in Visual Basic 6.0”中都指出Round函数实行Banker舍入,而不是我们习惯的算术舍入(四舍五入)。vb中round函数,是返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。
语法 round(expression [,numdecimalplaces])
expression必需的。要进行四舍五入运算的数值表达式。
numdecimalplaces可选的。数字值,表示进行四舍五入运算时,小数点右边应保留的位数。如果忽略,则round函数返回整数。
dim a as double
a = 2.55
print round(a, 1)
返回结果是:2.6
a = 3.1415926
print round(a, 6)
返回结果是3.141593
=ROUND这函数是什么意思描述:ROUND 函数会将数字四舍五入至指定的位数。
语法:ROUND(数字, 进位的位数)
注解:
如果"进位的位数"大於 0 (零),则将数字四舍五入到指定的小数位数。
如果"进位的位数"等於 0,则将数字四舍五入到最接近的整数。
如果"进位的位数"小於 0,则将数字四舍五入到小数点左边的指定位数。
范例:
=ROUND(2.15, 0)----将 2.15 四舍五入至最接近的整数,结果=2
=ROUND(2.15, 1)----将 2.15 四舍五入至一位小数位数,结果=2.2
=ROUND(-1.475, 2)----将 -1.475 四舍五入至两位小数位数结果=-1.48
=ROUND(21.5, -1)----将 21.5 四舍五入至小数点左边一位小数位数,结果=20