C#|关于四舍五入的解决方案

对于一些数据,我们经常需要通过某种方法,得到我们想要的小数点后几位,以及它的精确程度。

主要有3种方式:

  1. Round()
  2. ToString()
  3. Format()

1.Round()

需要在使用时调用自带的数学函数Round(),具体实现如下:

1 double MyValue = 1990.8753;
2 double d = Math.Round(MyValue, 2); //输出:1990.88,使用了Math中的函数
3 decimal de = decimal.Round(decimal.Parse(MyValue), 2); //输出:1990.88

备注:在C#里decimal表示 128 位数据类型,与double相比,decimal 类型具有更高的精度和更小的范围,适合于财务和货币计算。并且,在.NET环境中,计算该类型的值会有性能上的损失,因为它不是基本类型。

2.ToString()

转化为字符串输出:

1 double MyValue = 612.576;
2 string str = MyValue.ToString("f2"); //输出:612.58
3 string str1 = MyValue.ToString("#0.00"); //输出:612.58,小数点后有几个0就保留几位

3.Format()

使用String.Format(~.~)

可以指定保留的位数:

1 double MyValue = 311.3876943;
2 string str1 = String.Format("{0:N2}", MyValue); //输出:311.39
3 string str2 = String.Format("{0:N3}", MyValue); //输出:311.388
4 string str3 = String.Format("{0:N4}", MyValue); //输出:311.3877

 

上述三种方法中,如果需要反复计算取精度的话,首选第一种,也就是Round()方法。

posted @ 2019-10-05 00:37  =Icarus=  阅读(1333)  评论(0)    收藏  举报