我有这样的字符串,我想将它转换为双精度。
string x = "65.50";
double y = Convert.ToDouble(x);
但结果是 6550.0
我希望它是 65.50。
我正在使用 ASP.NET 和 C#。我认为这是全球化的问题。
这是我对此感到抱歉的问题(:
我有这样的字符串,我想将它转换为双精度。
string x = "65.50";
double y = Convert.ToDouble(x);
但结果是 6550.0
我希望它是 65.50。
我正在使用 ASP.NET 和 C#。我认为这是全球化的问题。
这是我对此感到抱歉的问题(:
是的,是您当前的文化以这种方式转换它。您可以使用CultureInfo.InvariantCulture
跳过使用您的文化。
double d = double.Parse("65.50", CultureInfo.InvariantCulture);
我希望它是 65.50。
如果要将其转换回字符串:
string str = d.ToString("N2", CultureInfo.InvariantCulture);
我认为这是一种货币,因为您保留小数位。那么你应该decimal
改用:
decimal dec = decimal.Parse("65.50", CultureInfo.InvariantCulture); // 65.5
现在您可以使用decimal.ToString
它并自动恢复小数位:
string str = dec.ToString(CultureInfo.InvariantCulture); // "65.50"
最近我有一个类似的问题。解决方案 :
var result = Double.TryParse(x, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out y);
如果你得到 true,那就是 x 被转换为 double
尝试这个:
var res = Double.Parse("65.50", NumberStyles.Float, CultureInfo.InvariantCulture);
它将用.
浮动分隔符所在的区域性解析它
在这里你可以试试:http: //ideone.com/3LMVqa