我有这个字符串“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
答案 0 :(得分:6)
十进制只有一个值,你将它与一个字符串混淆,该字符串可以以所需的格式显示数字。您可以将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);
答案 1 :(得分:3)
数字不会落后零小数。
如果你想以某种方式显示它们(而不是仅使用它们),那么你需要将它们转换为字符串,即number.ToString("0.00")
- 但是它有点滑稽,因为你首先从字符串开始。
答案 2 :(得分:2)
简单的单步过程 - 直接将小数分析为:
var decimalValue = decimal.Parse(decimalString);
因此,decimal.Parse("121,121.00")
将返回decimal value - 121121.00
。根本不需要担心字符串和cultureinfo。