Math.Round方法真正意义上的四舍五入
2011-10-28 09:24
267 查看
不能直接调用Math.Round方法的,这可和Java的不一样哦
Math.Round这个函数的解释是将值按指定的小数位数舍入,并不就是四舍五入。这种舍入有时称为就近舍入或四舍六入五成双
C# code
Math.Round(0.4) //result:0
Math.Round(0.6) //result:1
Math.Round(0.5) //result:0
Math.Round(1.5) //result:2
Math.Round(2.5) //result:2
Math.Round(3.5) //result:4
Math.Round(5.5) //result:6
Math.Round(6.5) //result:6
Math.Round(8.5) //result:8
Math.Round(9.5) //result:10
可以看出 并不是四舍五入的
其实在 VB, VBScript, C#, J#, T-SQL 中 Round 函数都是采用 Banker's rounding(银行家舍入)算法,即四舍六入五取偶。事实上这也是 IEEE 规定的舍入标准。因此所有符合 IEEE 标准的语言都应该是采用这一算法的。
请调用 Math.Round(Decimal, MidpointRounding) 重载!~哦,原来还有重载的方法可用,MidpointRounding在两个数字之间时如何舍入的规范,规范MidpointRounding中它有2个成员,一个是ToEven还有个是AwayFromZero。
C# code
//四舍五入 Math.Round(0.5,MidpointRounding.AwayFromZero)
Math.Round这个函数的解释是将值按指定的小数位数舍入,并不就是四舍五入。这种舍入有时称为就近舍入或四舍六入五成双
C# code
Math.Round(0.4) //result:0
Math.Round(0.6) //result:1
Math.Round(0.5) //result:0
Math.Round(1.5) //result:2
Math.Round(2.5) //result:2
Math.Round(3.5) //result:4
Math.Round(5.5) //result:6
Math.Round(6.5) //result:6
Math.Round(8.5) //result:8
Math.Round(9.5) //result:10
可以看出 并不是四舍五入的
其实在 VB, VBScript, C#, J#, T-SQL 中 Round 函数都是采用 Banker's rounding(银行家舍入)算法,即四舍六入五取偶。事实上这也是 IEEE 规定的舍入标准。因此所有符合 IEEE 标准的语言都应该是采用这一算法的。
请调用 Math.Round(Decimal, MidpointRounding) 重载!~哦,原来还有重载的方法可用,MidpointRounding在两个数字之间时如何舍入的规范,规范MidpointRounding中它有2个成员,一个是ToEven还有个是AwayFromZero。
C# code
//四舍五入 Math.Round(0.5,MidpointRounding.AwayFromZero)
相关文章推荐
- Math.Round()方法的四舍五入(.NET)
- JavaScript中用于四舍五入的Math.round()方法讲解
- JavaScript中用于四舍五入的Math.round()方法讲解
- js操作日期(函数,js版的dateAdd与dateDiff,四舍五入(round()方法)并保留小数点后N位的函数)
- Java中Math.round()方法原理解读
- C# 中的四舍五入算法及 MSDN 2005 中文版 Math.Round 勘误 .
- Math.round()方法
- js四舍五入(round()方法)并保留小数点后N位的函数
- JavaScript Math.round() 方法
- js操作日期(函数,js版的dateAdd与dateDiff,四舍五入(round()方法)并保留小数点后N位的函数)
- .net Math.Round方法详解
- 重写JavaScript的Math.round方法
- 关于Java中if else,Math.round()方法的总结
- 转载:fft补零的真正意义(从信息论的角度看各种信号处理方法非常清晰)
- Math.Round 之关于 不同的四舍五入
- .Net中Math.Round与四舍五入(转载)
- 面试题解析:5 Math.round()方法解析
- Math.Round函数四舍五入的问题
- 用.NET判断上传文件类型的三种方法,最后一种真正意义上的判断
- C#中Math.Round()实现中国式四舍五入