Excel-VBA:“银行家舍入” 与“国际标准的四舍五入”
银行家舍入
银行家舍入法就是大家所用的四舍五入法,例如,保留两位小数时,第三位小数的值大于5,则第二位小数要进1;否者,舍掉。
已数字举例
国际标准的四舍五入
大部分编程软件使用的四舍五入,也就是国际标准的四舍五入,其原则为:
四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。
以几个数字来举例这个"舍入法则"
Excel里的 Round函数
前面讲了两种舍入法,其实时为更好引出要解决的现实场景中的数据问题。
round函数的官方链接文档:Round函数
Round函数有两个参数,即 Round(A,B)。
其中A为要调整的原值,一般为双精度小数;B为自定义的整数,用于指定A要保留几位小数。
把官网的举例搬过来
值得注意的是
Round函数,在工作表和VBA中有区别。在工作表中是四舍五入,在VBA中是四舍六入五考虑,也就是国际标准的舍入法。
用以下语句去封装round函数,再调用这个封装的函数,就可以达到国际标准的舍入法
Function TranValue(rng As Double, number As Integer) As Double
TranValue = Round(rng, number)
End Function
打开VBA编辑器,右键ThisWorkbook右键->插入->模块
然后 ctrl+s 保存。
就可以再工作表里使用 tranvalue这个函数了。
以上。