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

标签 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 错误。

最佳答案

也许试试:

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

在此处查看 ideone

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

所有与文化相关的事物总是很棘手,应该尽可能准确地定义。如果您明确知道将使用哪种 double 格式,请定义它。如果您知道将使用哪种日期格式,请指定它等。

关于C# FormatException double.parse(),为什么 0.89 不解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21015194/

相关文章:

c# - Visual Studio 2013 C# 交互式窗口

c# - SerializeObject 添加 unicode c#

C++解释器: How to emit error messages?

parsing - 用 "mixed newline types"计算行号的算法

c# - 多话多对多在添加 child 时不更新数据库

c# - 是否可以将一个颜色资源指向 Xamarin.Forms 中的另一个颜色资源?

string - 访问R中str_split分割的各个值,找到最后一个?

c# - 统一: What's allocating memory in my function?

android - 当名称为数字时,Resources.getIdentifier() 具有意外行为

java - "Expected BEGIN_OBJECT but was STRING at line 1 column 1"