对于一些数据,我们经常需要通过某种方法,得到我们想要的小数点后几位,以及它的精确程度。
主要有3种方式:
- Round()
- ToString()
- 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()方法。 |