私が試したら
Double.Parse("Infinity")
私は得る
Double.Parse("Infinity") threw an exception of type 'System.FormatException'
なんで?とにかくそれを解析して、値が Infinity の Double を取得したい場合はどうすればよいですか?
私はちょうどこれを見つけました:
Decimal.Parse("Infinity", System.Globalization.CultureInfo.InvariantCulture);
動作し、値が +Infinity の double を返します。
それが機能しなかった理由は、私が自動的に InvariantCulture にいるわけではなく、おそらく正確な文字列「Infinity」を処理しない de-DE 文化にいるからだと思います。(おそらく、他の文字列を処理するでしょう。)
システム設定が異なることが問題の原因であるため、以下の解析はすべて有効です。dontomasoが上で答えたように、Invariant Culture を追加するだけです。
Double.Parse("NaN", System.Globalization.CultureInfo.InvariantCulture)
Double.Parse("-Infinity", System.Globalization.CultureInfo.InvariantCulture)
Double.Parse("Infinity", System.Globalization.CultureInfo.InvariantCulture)
多分これを試してください:
if(yourstring.ToLower() == "infinity")
{
yourdouble = double.PositiveInfinity;
}