📜  c# 带 2 个小数位的双精度值 - C# (1)

📅  最后修改于: 2023-12-03 14:59:42.359000             🧑  作者: Mango

C# 带 2 个小数位的双精度值

在 C# 中,我们经常需要处理双精度类型(Double),并将其保留到小数点后特定位数。本文将介绍如何在 C# 中通过不同的方法实现保留 Double 类型的小数点后两位。

方法一:ToString() 方法

Double 类型在调用 ToString() 方法时,可以传入一个参数指定小数点后的位数。例如:

double d = 3.1415926;
string dStr = d.ToString("f2"); // 保留 2 位小数
Console.WriteLine(dStr); // 输出 "3.14"

这里的 "f2" 是一个格式化字符串,指定了输出的格式。其中,f 表示浮点数格式,2 表示保留两位小数。更多格式化字符串可以参考官方文档。

方法二:Math.Round() 方法

Math.Round() 方法可以对 Double 类型进行四舍五入。例如:

double d = 3.1415926;
double dRound = Math.Round(d, 2); // 保留 2 位小数
Console.WriteLine(dRound); // 输出 3.14

这里的第二个参数表示要保留的小数位数。

需要注意的是,Math.Round() 方法默认采用银行家舍入规则,即当要舍弃的数字为 5 时,取决于前一位数字的奇偶性。如果前一位数字为偶数,则直接舍弃;如果前一位数字为奇数,则进位。例如:

double d = 2.555;
double dRound = Math.Round(d, 2); // 保留 2 位小数
Console.WriteLine(dRound); // 输出 2.56
方法三:String.Format() 方法

String.Format() 方法可以对 Double 类型进行格式化输出。例如:

double d = 3.1415926;
string dStr = String.Format("{0:f2}", d); // 保留 2 位小数
Console.WriteLine(dStr); // 输出 "3.14"

这里的 "{0:f2}" 也是一个格式化字符串,其中,0 表示第一个参数(即要格式化的 Double 值),f2 同样表示保留两位小数。

总结

本文介绍了在 C# 中保留 Double 类型小数点后两位的三种方法:ToString() 方法、Math.Round() 方法和 String.Format() 方法。需要注意的是,不同的方法可能存在精度问题,需要根据具体情况选择合适的方法来处理。