C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のDouble.IsInfinity()メソッドの使い方を徹底解説

C#のDouble.IsInfinity()メソッドは、指定された数値が負の無限大(-∞)または正の無限大(+∞)と評価されるかどうかを示すブール値を返す静的メソッドです。浮動小数点演算の結果が無限大になったかどうかをチェックしたい場合に便利なメソッドです。

構文

このメソッドの構文は以下の通りです。

public static bool IsInfinity (double d);

引数 d には、判定対象となる倍精度浮動小数点数(double型)の値を指定します。戻り値は、d が正または負の無限大であれば true、そうでなければ false となります。

使用例1:通常の数値の場合

まず、通常の有限の数値を指定した場合の例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        double d = 5.5;
        Console.WriteLine("Double Value = "+d);
        Console.WriteLine("HashCode of Double Value = "+d.GetHashCode());
        TypeCode type = d.GetTypeCode();
        Console.WriteLine("TypeCode of Double Value = "+type);
        Console.WriteLine("Positive Infinity? = "+Double.IsInfinity(d));
    }
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

Double Value = 5.5
HashCode of Double Value = 1075183616
TypeCode of Double Value = Double
Positive Infinity? = False

5.5は有限の数値であるため、IsInfinity() メソッドは False を返しています。

使用例2:無限大になる計算結果の場合

次に、ゼロ除算によって無限大が発生するケースを見てみましょう。

using System;
public class Demo {
    public static void Main(){
        double d = 1.0/0.0;
        Console.WriteLine("Double Value = "+d);
        Console.WriteLine("HashCode of Double Value = "+d.GetHashCode());
        TypeCode type = d.GetTypeCode();
        Console.WriteLine("TypeCode of Double Value = "+type);
        Console.WriteLine("Positive Infinity? = "+Double.IsInfinity(d));
    }
}

出力結果

実行結果は以下の通りです。

Double Value = ∞
HashCode of Double Value = 2146435072
TypeCode of Double Value = Double
Positive Infinity? = True

1.0を0.0で割った結果は正の無限大(∞)となるため、IsInfinity() メソッドは True を返します。

関連メソッドとの違い

Double構造体には、無限大を判定するための類似メソッドがいくつか用意されています。

  • Double.IsPositiveInfinity():正の無限大(+∞)のみを判定
  • Double.IsNegativeInfinity():負の無限大(-∞)のみを判定
  • Double.IsFinite():有限の数値であるかどうかを判定
  • Double.IsNaN():非数(NaN)であるかどうかを判定

正負を区別せずに無限大全般をチェックしたい場合は IsInfinity() を、特定の符号の無限大だけを判定したい場合はそれぞれ専用のメソッドを使用するとよいでしょう。

  1. C#のContainsKey()メソッドとは?Hashtableでキーの存在を確認する方法

    C#のContainsKey()メソッドは、Hashtableコレクション内に指定したキーが存在するかどうかを確認するための便利なメソッドです。キーが存在する場合はTrue、存在しない場合はFalseを返します。ContainsKey()メソッドの基本的な使い方まず、Hashtableコレクションを作成し、いくつかの要素を追加してみましょう。Hashtable h = new Hashtable(); h.Add(1, Sam); h.Add(2, Jack); h.Add(3, Andy); h.Add(4, Katie); h.Add(5, Beth); h.Add(6, Benjamin

  2. C#のSequenceEqualメソッドの使い方を徹底解説!コレクションの等価性を判定する方法

    C#のSequenceEqualメソッドは、2つのコレクションが等しいかどうかを判定するために使用されるLINQのメソッドです。要素の数だけでなく、順序も含めて各要素が一致しているかどうかを比較し、結果をbool型(true / false)で返します。このメソッドを使用するには、System.Linq名前空間が必要です。配列やリストなど、IEnumerableインターフェースを実装するあらゆるコレクションに対して利用できます。サンプルデータの準備まず、3つの文字列配列を用意してみましょう。string[] arr1 = { This, is, it }; string[] arr2 = {