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

C#のDouble.IsNegativeInfinity()メソッドとは?使い方とサンプルコードを解説

C#のDouble.IsNegativeInfinity()メソッドは、指定された数値が負の無限大(Negative Infinity)と評価されるかどうかを示すbool値を返す静的メソッドです。数値計算において、除算などで発生する無限大の値を判定したい場合に役立ちます。

構文

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

public static bool IsNegativeInfinity (double val);

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

使用例1:NaNの場合

まず、0.0を0で割った結果(NaN)に対してこのメソッドを使用する例を見てみましょう。

using System;
public class Demo {
    public static void Main(){
        double d = 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));
        Console.WriteLine("Check whether the specified value is NaN? = "+Double.IsNaN(d));
        Console.WriteLine("Does the value evaluate to negative infinity? = "+Double.IsNegativeInfinity(d));
    }
}

出力結果

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

Double Value = NaN
HashCode of Double Value = -524288
TypeCode of Double Value = Double
Positive Infinity? = False
Check whether the specified value is NaN? = True
Does the value evaluate to negative infinity? = False

この例では、0.0/0の結果は「非数(NaN)」となるため、IsNegativeInfinity()メソッドはFalseを返しています。また、IsNaN()メソッドはTrueを返すことから、この値がNaNであることが確認できます。

使用例2:負の無限大の場合

次に、-1.0を0.0で割った結果(負の無限大)に対してこのメソッドを使用する例を見てみましょう。

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));
        Console.WriteLine("Check whether the specified value is NaN? = "+Double.IsNaN(d));
        Console.WriteLine("Does the value evaluate to negative infinity? = "+Double.IsNegativeInfinity(d));
    }
}

出力結果

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

Double Value = -∞
HashCode of Double Value = -1048576
TypeCode of Double Value = Double
Positive Infinity? = True
Check whether the specified value is NaN? = False
Does the value evaluate to negative infinity? = True

この例では、-1.0/0.0の結果は負の無限大(-∞)となるため、IsNegativeInfinity()メソッドはTrueを返しています。なお、Double.IsInfinity()メソッドは正負どちらの無限大でもTrueを返す点に注意してください。

まとめ

  • Double.IsNegativeInfinity()メソッドは、指定したdouble型の値が負の無限大かどうかを判定します。
  • 負の無限大の場合はtrue、NaNや通常の数値、正の無限大の場合はfalseを返します。
  • 0による除算の結果などを安全にチェックし、エラー処理に活用できます。
  1. C#のMath.IEEERemainder()メソッドとは?使い方と実行例を解説

    C#のMath.IEEERemainder()メソッドは、指定した数値(被除数)を別の数値(除数)で除算した結果の剰余を、IEEE 754規格に基づいて返す静的メソッドです。通常の剰余演算子「%」とは計算結果が異なる場合がある点に注意しましょう。構文public static double IEEERemainder (double dividend, double divisor);パラメータdividend:被除数(割られる数)を表す倍精度浮動小数点数。divisor:除数(割る数)を表す倍精度浮動小数点数。戻り値dividend を divisor で割ったIEEE剰余を返します。この剰

  2. C#のChar.IsWhiteSpace()メソッドとは?使い方とサンプルコードを解説

    C#のChar.IsWhiteSpace()メソッドは、指定されたUnicode文字が空白文字(ホワイトスペース)であるかどうかを判定し、その結果をbool値で返す静的メソッドです。空白文字には、半角スペースだけでなく、タブ(\t)、改行(\n)、復帰(\r)なども含まれます。文字列の前処理や入力値のバリデーションなどで活用できる便利なメソッドです。構文public static bool IsWhiteSpace (char ch);パラメータ ch には、評価対象となるUnicode文字を指定します。戻り値は、その文字が空白文字であれば true、そうでなければ false となります。C