4

私が試したら

Double.Parse("Infinity")

私は得る

Double.Parse("Infinity") threw an exception of type 'System.FormatException'

なんで?とにかくそれを解析して、値が Infinity の Double を取得したい場合はどうすればよいですか?

4

5 に答える 5

11

私はちょうどこれを見つけました:

Decimal.Parse("Infinity", System.Globalization.CultureInfo.InvariantCulture);

動作し、値が +Infinity の double を返します。

それが機能しなかった理由は、私が自動的に InvariantCulture にいるわけではなく、おそらく正確な文字列「Infinity」を処理しない de-DE 文化にいるからだと思います。(おそらく、他の文字列を処理するでしょう。)

于 2013-08-23T09:12:14.970 に答える
8

システム設定が異なることが問題の原因であるため、以下の解析はすべて有効です。dontomasoが上で答えたように、Invariant Culture を追加するだけです

Double.Parse("NaN", System.Globalization.CultureInfo.InvariantCulture)
Double.Parse("-Infinity", System.Globalization.CultureInfo.InvariantCulture)
Double.Parse("Infinity", System.Globalization.CultureInfo.InvariantCulture)
于 2013-08-23T09:21:24.853 に答える
6

多分これを試してください:

if(yourstring.ToLower() == "infinity")
{
   yourdouble = double.PositiveInfinity;
}
于 2013-08-23T08:53:45.210 に答える