เมธอด 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()แทน