当前位置:编程学习 > C#/ASP.NET >>

c# 简单又好用的四舍五入方法

四舍五入是软件开发中经常遇到的问题,我也在不止一个项目中用到这方面的运算;关于c#的四舍五入,如果你去网上搜会有好多结果,但大部分的内容都是说微软的Math.Round() 不准确,属于“四舍六入五成双”,然后会有很多人自己去写方法来实现,有的很简单,有的很复杂,有的还不对;

其实要实现这个功能,真的不用这么麻烦;大家既然知道c#有Math.Round(),难道就没发现它有多大8个重载方法吗,其中有一个类型是MidpointRounding的参数,只要我们很好的利用它,就完全可以实现很精确的四舍五入,根本不用写那么复杂的方法。


MidpointRounding:指定数学舍入方法应如何处理两个数字间的中间值。


下表演示与 MidpointRounding 的值结合使用的某些正数和负数的舍入结果。在舍入数字时所使用的精度是零,这意味着小数点之后的数字会影响舍入运算。例如,对于数字 -2.5,小数点之后的数字是 5。由于该数字是中间值,因此您可以使用 MidpointRounding 值来确定舍入结果。如果指定了 AwayFromZero,则将返回 -3,因为它是精度为零且与零最接近的数字。如果指定了 ToEven,则将返回 -2,因为它是精度为零的最接近的偶数。

原始数字
  取绝对值较大的值
  取偶数
  3.5
  4
  4
  2.8
  3
  3
  2.5
  3
  2
  2.1
  2
  2
  -2.1
  -2
  -2
  -2.5
  -3
  -2
  -2.8
  -3
  -3
  -3.5
  -4
  -4
 

不用我再解释了吧,假如像把3.455四舍五入到3.46,实际上只需要用下面的代码就可以

 

==============================

Math.Round( 3.455, 2, MidpointRounding.AwayFromZero)

==============================
    
补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,