Format与CInt函数的数字舍入差异原因探究
CInt与Format函数的舍入方法差异
这两个函数确实采用了不同的舍入规则:
CInt函数:使用银行家舍入法(四舍六入五成双)
当小数部分恰好为0.5时,会舍入到最近的偶数整数:- 36.5的整数部分36是偶数,因此舍入后结果为36
- 35.5的整数部分35是奇数,因此舍入到相邻的偶数36
Format函数:使用常规四舍五入法
只要小数部分大于等于0.5,就向上舍入到下一个整数:- 36.5的小数部分是0.5,向上舍入为37
- 35.5的小数部分是0.5,向上舍入为36
测试验证示例
CInt(36.5).ToString→ 返回 "36"Format(36.5, "0")→ 返回 "37"CInt(35.5).ToString→ 返回 "36"Format(35.5, "0")→ 返回 "36"
内容的提问来源于stack exchange,提问作者navigator
相关产品推荐
相关产品推荐

