Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức Double.IsPositiveInfinity() trong C#

Giới thiệu

Phương thức tĩnh Double.IsPositiveInfinity(double value) kiểm tra xem một giá trị double có đại diện cho vô cực dương (+∞) hay không. Vô cực dương xảy ra khi chia số dương cho 0, hoặc kết quả phép toán vượt quá Double.MaxValue.

Cú pháp

public static bool IsPositiveInfinity(double value);

Ví dụ 1 - Vô cực dương

using System;

public class Demo
{
    public static void Main()
    {
        double d = 1.0 / 0.0; // Vô cực dương
        Console.WriteLine("Giá trị Double = " + d);
        Console.WriteLine("HashCode = " + d.GetHashCode());
        Console.WriteLine("TypeCode = " + d.GetTypeCode());
        Console.WriteLine("Là vô cực? = " + Double.IsInfinity(d));
        Console.WriteLine("Là NaN? = " + Double.IsNaN(d));
        Console.WriteLine("Là vô cực âm? = " + Double.IsNegativeInfinity(d));
        Console.WriteLine("Là vô cực dương? = " + Double.IsPositiveInfinity(d));
    }
}

Kết quả

Giá trị Double = ∞
HashCode = 2146435072
TypeCode = Double
Là vô cực? = True
Là NaN? = False
Là vô cực âm? = False
Là vô cực dương? = True

Ví dụ 2 - Vô cực âm

using System;

public class Demo
{
    public static void Main()
    {
        double d = -50.0 / 0.0; // Vô cực âm
        Console.WriteLine("Giá trị Double = " + d);
        Console.WriteLine("HashCode = " + d.GetHashCode());
        Console.WriteLine("TypeCode = " + d.GetTypeCode());
        Console.WriteLine("Là vô cực? = " + Double.IsInfinity(d));
        Console.WriteLine("Là NaN? = " + Double.IsNaN(d));
        Console.WriteLine("Là vô cực âm? = " + Double.IsNegativeInfinity(d));
        Console.WriteLine("Là vô cực dương? = " + Double.IsPositiveInfinity(d));
    }
}

Kết quả

Giá trị Double = -∞
HashCode = -1048576
TypeCode = Double
Là vô cực? = True
Là NaN? = False
Là vô cực âm? = True
Là vô cực dương? = False

Các hằng số liên quan

  • Double.PositiveInfinity: Giá trị +∞.
  • Double.NegativeInfinity: Giá trị -∞.
  • Double.NaN: Not a Number (0/0, sqrt(-1), v.v.).
  • Double.MaxValue ≈ 1.7976931348623157E+308.
  • Double.MinValue ≈ -1.7976931348623157E+308.

Lưu ý quan trọng

  • So sánh trực tiếp với Double.PositiveInfinity cũng được: d == Double.PositiveInfinity.
  • IsInfinity() = IsPositiveInfinity() || IsNegativeInfinity().
  • Phép toán với vô cực: ∞ + 5 = ∞, ∞ * 0 = NaN, ∞ / ∞ = NaN.
  • Kiểm tra vô cực trước khi tính toán tránh lỗi logic ngầm.