Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด Double.IsInfinity() ใน C# : ตรวจสอบค่าอันันต์ (บวก/ลบ)

เมธอด Double.IsInfinity() ใน C# ใช้ตรวจสอบว่าค่า double ที่ระบุประเมินผลเป็น อันันต์ (Infinity) ไม่ว่าจะเป็นบวกหรือลบ คืนค่า true หากเป็น PositiveInfinity หรือ NegativeInfinity มิฉะนั้นคืน false

รูปแบบไวยากรณ์ (Syntax)

public static bool IsInfinity(double d);
  • d : ค่าทศนิยม double-precision ที่ต้องการตรวจสอบ

ตัวอย่างที่ 1: ตรวจสอบค่าปกติ

using System;

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

ผลลัพธ์

Double Value = 5.5
HashCode = 1075183616
TypeCode = Double
Is Infinity? = False

ตัวอย่างที่ 2: ตรวจสอบค่าบวกอันันต์

using System;

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

ผลลัพธ์

Double Value = ∞
HashCode = 2146435072
TypeCode = Double
Is Infinity? = True

เมธอดตรวจสอบค่าพิเศษของ Double (ครบชุด)

เมธอด ตรวจสอบ ตัวอย่างค่าที่ True
Double.IsInfinity(d) บวกอันันต์ หรือ ลบอันันต์ 1.0/0.0, -1.0/0.0
Double.IsPositiveInfinity(d) เฉพาะบวกอันันต์ 1.0/0.0
Double.IsNegativeInfinity(d) เฉพาะลบอันันต์ -1.0/0.0
Double.IsNaN(d) Not a Number 0.0/0.0, Math.Sqrt(-1)

ค่าคงที่พิเศษของ Double

Console.WriteLine("PositiveInfinity: " + Double.PositiveInfinity);  // ∞
Console.WriteLine("NegativeInfinity: " + Double.NegativeInfinity);  // -∞
Console.WriteLine("NaN: " + Double.NaN);                             // NaN
Console.WriteLine("MaxValue: " + Double.MaxValue);                   // ~1.8E308
Console.WriteLine("MinValue: " + Double.MinValue);                   // ~-1.8E308
Console.WriteLine("Epsilon: " + Double.Epsilon);                     // ~5E-324

สรุป

  • การหาร double ด้วยศูนย์ให้ Infinity (ไม่ใช่ exception)
  • IsInfinity() ครอบคลุมทั้ง Positive และ Negative Infinity
  • ใช้ตรวจสอบก่อนคำนวณต่อ เพื่อป้องกันการแพร่กระจาย Infinity/NaN
  • NaN ไม่ใช่ Infinity (IsInfinity(NaN) = false)
  • สำหรับ float (Single) ใช้ Single.IsInfinity() แทน