C#FormatException double。parse()、なぜ0.89解析されないのですか?[重複]
-
21-12-2019 - |
質問
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);
ここで確認してください イデオネ
あなたの問題は、あなたの文化がドットを許可していないということです。不変カルチャは唯一の解決策ではなく、カルチャを指定して区切り文字を使用することもできます。現在のカルチャがコンマのみを区切り文字として受け入れる場合は、ドットをコンマに置き換える解決策になる可能性もあります。カルチャを明示的に指定しないと、異なるカルチャを実行している異なるマシンで数値を解析する際の問題に影響します。
文化固有のものはすべて常に注意が必要であり、可能な限り正確に定義する必要があります。どのダブルフォーマットを使用するかを知っている場合は、それを定義します。使用する日付形式がわかっている場合は、それなどを指定します。
所属していません StackOverflow