C#のDouble.IsPositiveInfinity()メソッドとは?正の無限大の判定方法を解説
概要
C#のDouble.IsPositiveInfinity()メソッドは、指定された倍精度浮動小数点数(double)が正の無限大(+∞)と評価されるかどうかを示すbool値を返します。正の無限大であればtrue、それ以外の場合はfalseを返します。
浮動小数点数の演算では、たとえば1.0 / 0.0のようなゼロ除算を行っても例外は発生せず、結果として無限大が返されます。そのため、計算結果が意図しない無限大になっていないかをチェックしたい場合に、このメソッドが役立ちます。
構文
public static bool IsPositiveInfinity(double val);
パラメータのvalには、判定対象となる倍精度浮動小数点数を指定します。
関連する判定メソッド
- Double.IsInfinity():値が正または負のいずれかの無限大であれば
true - Double.IsNegativeInfinity():値が負の無限大であれば
true - Double.IsNaN():値が非数(NaN)であれば
true
使用例1:正の無限大の場合
次の例では、1.0 / 0.0 の計算結果(正の無限大)に対して、各種判定メソッドを実行しています。
using System;
public class Demo {
public static void Main() {
double d = 1.0 / 0.0;
Console.WriteLine("Double型の値 = " + d);
Console.WriteLine("ハッシュコード = " + d.GetHashCode());
TypeCode type = d.GetTypeCode();
Console.WriteLine("TypeCode = " + type);
Console.WriteLine("無限大か? = " + Double.IsInfinity(d));
Console.WriteLine("NaNか? = " + Double.IsNaN(d));
Console.WriteLine("負の無限大か? = " + Double.IsNegativeInfinity(d));
Console.WriteLine("正の無限大か? = " + Double.IsPositiveInfinity(d));
}
}実行結果
Double型の値 = ∞ ハッシュコード = 2146435072 TypeCode = Double 無限大か? = True NaNか? = False 負の無限大か? = False 正の無限大か? = True
1.0 / 0.0 の結果は正の無限大(+∞)となるため、IsPositiveInfinity()はtrueを返し、IsNegativeInfinity()はfalseを返します。
使用例2:負の無限大の場合
続いて、-50.0 / 0.0 のように負の値をゼロで除算した場合の例です。
using System;
public class Demo {
public static void Main() {
double d = -50.0 / 0.0;
Console.WriteLine("Double型の値 = " + d);
Console.WriteLine("ハッシュコード = " + d.GetHashCode());
TypeCode type = d.GetTypeCode();
Console.WriteLine("TypeCode = " + type);
Console.WriteLine("無限大か? = " + Double.IsInfinity(d));
Console.WriteLine("NaNか? = " + Double.IsNaN(d));
Console.WriteLine("負の無限大か? = " + Double.IsNegativeInfinity(d));
Console.WriteLine("正の無限大か? = " + Double.IsPositiveInfinity(d));
}
}実行結果
Double型の値 = -∞ ハッシュコード = -1048576 TypeCode = Double 無限大か? = True NaNか? = False 負の無限大か? = True 正の無限大か? = False
この場合は負の無限大(-∞)となるため、IsNegativeInfinity()がtrueを返し、IsPositiveInfinity()はfalseを返します。IsInfinity()は正負どちらの無限大に対してもtrueを返す点に注意してください。
まとめ
Double.IsPositiveInfinity()は、指定したdouble値が正の無限大かどうかを判定する静的メソッドです。- ゼロ除算などの演算結果が
+∞になった場合にtrueを返します。 - 負の無限大の判定には
Double.IsNegativeInfinity()、正負を問わない判定にはDouble.IsInfinity()を使用します。
-
C#のMath.Log10()メソッドの使い方を徹底解説!常用対数の計算方法と戻り値一覧
Math.Log10()メソッドとはC#のMath.Log10()メソッドは、指定された数値の常用対数(底が10の対数)を計算して返す静的メソッドです。科学技術計算や桁数の判定、スケール変換など、さまざまな場面で活用されます。構文public static double Log10 (double val);パラメータ val には、対数を求めたい対象の数値をdouble型で指定します。戻り値の一覧Math.Log10()メソッドは、引数に渡した値によって以下のような結果を返します。valパラメータの値戻り値正の数底10の対数(log₁₀ d)ゼロNegativeInfinity(負の無限大)
-
C#のMath.IEEERemainder()メソッドとは?使い方と実行例を解説
C#のMath.IEEERemainder()メソッドは、指定した数値(被除数)を別の数値(除数)で除算した結果の剰余を、IEEE 754規格に基づいて返す静的メソッドです。通常の剰余演算子「%」とは計算結果が異なる場合がある点に注意しましょう。構文public static double IEEERemainder (double dividend, double divisor);パラメータdividend:被除数(割られる数)を表す倍精度浮動小数点数。divisor:除数(割る数)を表す倍精度浮動小数点数。戻り値dividend を divisor で割ったIEEE剰余を返します。この剰