字符串到十进制始终显示两位小数
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
。根本不需要担心字符串和文化信息。
我有这个字符串“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
。根本不需要担心字符串和文化信息。