将字符串转换为小数,始终保留 2 位小数

Ben*_*Ben 3 c# decimal

我正在尝试将字符串转换为小数,以始终保留 2 位小数。例如:

  • 25.88 -> 25.88
  • 25.50 -> 25.50
  • 25.00 -> 25.00

但通过下面的代码,我看到以下内容:

  • 25.88 -> 25.88
  • 25.50 -> 25.5
  • 25.00 -> 25

我的代码:

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。多余的可以不去掉吗?

Dmi*_*nko 6

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)