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

时间:2014-01-09 08:36:06

标签: c# string parsing double formatexception

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

        dbl++;

        Console.WriteLine(dbl);
        Console.ReadLine();
    }
}

我需要工作的所有其他格式,例如“100”工作。但是只要我添加一个“点”,我就会出现FormatException错误。

1 个答案:

答案 0 :(得分:8)

也许试试:

double dbl = double.Parse(str , CultureInfo.InvariantCulture);

点击此处ideone

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

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