在C#中,小数取整可以使用Math.Round(num, 0) 方法实现。
一开始也没怎么在意,这能出什么差错?直到在做统计数据总数时,结果总不对,甚至还调出了计算器来求和。调试时才发现问题出现在 “32.50 的转换结果为 32”。这就纳闷了,不是“四舍五入”么?
关于Math.Round,MSDN 上的文档说明: [ 舍入十进制值为指定数量的小数位数,并且舍入中心点值为最近的偶数 ],这样看来结果也算合理,可为什么要费尽周折地用最近的偶数?
XI 同学点出了其中的奥秘:[
在C#中,小数取整可以使用Math.Round(num, 0) 方法实现。
一开始也没怎么在意,这能出什么差错?直到在做统计数据总数时,结果总不对,甚至还调出了计算器来求和。调试时才发现问题出现在 “32.50 的转换结果为 32”。这就纳闷了,不是“四舍五入”么?
关于Math.Round,MSDN 上的文档说明: [ 舍入十进制值为指定数量的小数位数,并且舍入中心点值为最近的偶数 ],这样看来结果也算合理,可为什么要费尽周折地用最近的偶数?
XI 同学点出了其中的奥秘:[