我正在尝试将字符串转换为小数,以始终保留 2 位小数。例如:
但通过下面的代码,我看到以下内容:
我的代码:
Decimal.Parse("25.50", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
或者
Decimal.Parse("25.00");
Run Code Online (Sandbox Code Playgroud)
或者
Convert.ToDecimal("25.50");
Run Code Online (Sandbox Code Playgroud)
对于我所得到的一切25.5。多余的零可以不去掉吗?
Decimal是有点奇怪的类型,所以,从技术上来说,你可以做一些(可能是肮脏的)技巧:
// This trick will do for Decimal (but not, say, Double)
// notice "+ 0.00M"
Decimal result = Convert.ToDecimal("25.5", CultureInfo.InvariantCulture) + 0.00M;
// 25.50
Console.Write(result);
Run Code Online (Sandbox Code Playgroud)
但更好的方法是每当你想输出它时,将其格式化(表示)Decimal为小数点后 2 位:
Decimal d = Convert.ToDecimal("25.50", CultureInfo.InvariantCulture);
// represent Decimal with 2 digits after decimal point
Console.Write(d.ToString("F2"));
Run Code Online (Sandbox Code Playgroud)