全球化.net将字符串转换为double

ypb*_*pbr 3 c# asp.net globalization

我有这样的字符串,我想将其转换为双倍.

string x = "65.50";
double y = Convert.ToDouble(x);
Run Code Online (Sandbox Code Playgroud)

但结果是6550.0

我希望它是65.50.

我正在使用ASP.NET和C#.我认为这是全球化的问题.

这是我的问题抱歉(:

Tim*_*ter 8

是的,这是你现在的文化以这种方式转换它.您可以使用CultureInfo.InvariantCulture跳过使用您的文化.

double d = double.Parse("65.50", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

我希望它是65.50.

如果要将其转换回字符串:

string str = d.ToString("N2", CultureInfo.InvariantCulture);  
Run Code Online (Sandbox Code Playgroud)

我认为这是一种货币,因为你保留小数位.然后你应该使用decimal:

decimal dec = decimal.Parse("65.50", CultureInfo.InvariantCulture); // 65.5
Run Code Online (Sandbox Code Playgroud)

现在您可以使用decimal.ToString它并自动恢复小数位:

string str = dec.ToString(CultureInfo.InvariantCulture); // "65.50"
Run Code Online (Sandbox Code Playgroud)