字符串到十进制始终显示两位小数

string to decimal showing always two decimals

我有这个字符串“121,121.00”,我需要转换为小数以将这个“121121.00”提供给前端。我已经尝试了很多,但我还做不到。这是我尝试的一些代码以及他们给我的结果:

string var = "121,121.00"

decimal d = decimal.Parse(var, NumberStyles.AllowThousands | NumberStyles.AllowDecimalPoint);
// it gives me '12112100'  

decimal d = decimal.Parse(var, NumberStyles.Currency);
// it gives me '12112100' 

decimal d = decimal.Parse((var.Replace(",","")), NumberStyles.Currency);
// and it gives me '12112100' too

数字没有尾随零小数。

如果你想以某种方式显示它们(而不是仅仅使用它们),那么你需要将它们转换成一个字符串,即 number.ToString("0.00")——然而这有点有趣,因为你开始首先是一个字符串。

小数只有一个值,您将它与可以按所需格式显示数字的字符串混淆了。您可以将 d.ToString("0.00)"CultureInfo.InvariantCulture:

一起使用
string var = "121,121.00";
decimal number = decimal.Parse(var, CultureInfo.InvariantCulture);
string result = number.ToString("0.00", CultureInfo.InvariantCulture);

简单的单步过程-直接解析小数为:

var decimalValue = decimal.Parse(decimalString);

所以,decimal.Parse("121,121.00") 会 return 一个 decimal value - 121121.00。根本不需要担心字符串和文化信息。