C#FormatException double.parse(),为什么不是0.89解析?

SUG*_*RIE 2 c# string double parsing formatexception

class Program
{
    static void Main(string[] args)
    {
        string str = "0.898";
        double dbl = Double.Parse(str);

        dbl++;

        Console.WriteLine(dbl);
        Console.ReadLine();
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要工作的所有其他格式,如"100"工作.但是只要我添加一个"点",我就会FormatException出错.

Kam*_*ski 8

也许试试:

double dbl = double.Parse(str , CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

在这里查看ideone

你的问题是你的文化不允许点.不变文化不是唯一的解决方案,您也可以指定您的文化并使用它的分隔符.如果您当前的文化仅接受逗号作为分隔符,则它也可以是用逗号替换点的解决方案.未明确指定文化将影响在运行不同文化的不同计算机中解析数字的问题.

所有具有文化特色的东西总是很棘手,应该尽可能精确地定义.如果你知道你将使用哪种双重格式,请定义它.如果您知道将使用哪种日期格式,请指定它等.