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

เมธอด Single.IsPositiveInfinity() ใน C# พร้อมตัวอย่าง


เมธอด Single.IsPositiveInfinity() ใน C# ใช้สำหรับตรวจสอบว่าค่าที่ระบุเป็นบวกอนันต์ (positive infinity) หรือไม่ โดยคืนค่า true หากเป็นบวกอนันต์ มิฉะนั้นคืนค่า false

ไวยากรณ์ (Syntax)

public static bool IsPositiveInfinity (float val);

พารามิเตอร์ val คือตัวเลขทศนิยมความแม่นยำเดี่ยว (single-precision floating-point number) ที่ต้องการตรวจสอบ

ตัวอย่างที่ 1: เปรียบเทียบลบอนันต์และบวกอนันต์

using System;

public class Demo
{
    public static void Main()
    {
        float f1 = -25.0f / 0.0f;   // -Infinity
        float f2 = 5.0f / 0.0f;     // +Infinity

        Console.WriteLine("Value1 = " + f1);
        Console.WriteLine("Hashcode for Value1 = " + f1.GetHashCode());
        Console.WriteLine("TypeCode for Value1 = " + f1.GetTypeCode());
        Console.WriteLine("Is Value1 infinity? = " + Single.IsInfinity(f1));
        Console.WriteLine("Is Value1 NaN? = " + Single.IsNaN(f1));
        Console.WriteLine("Is Value1 positive infinity? = " + Single.IsPositiveInfinity(f1));

        Console.WriteLine("\nValue2 = " + f2);
        Console.WriteLine("Hashcode for Value2 = " + f2.GetHashCode());
        Console.WriteLine("TypeCode for Value2 = " + f2.GetTypeCode());
        Console.WriteLine("Is Value2 infinity? = " + Single.IsInfinity(f2));
        Console.WriteLine("Is Value2 NaN? = " + Single.IsNaN(f2));
        Console.WriteLine("Is Value2 positive infinity? = " + Single.IsPositiveInfinity(f2));
    }
}

ผลลัพธ์

Value1 = -∞
Hashcode for Value1 = -8388608
TypeCode for Value1 = Single
Is Value1 infinity? = True
Is Value1 NaN? = False
Is Value1 positive infinity? = False

Value2 = ∞
Hashcode for Value2 = 2139095040
TypeCode for Value2 = Single
Is Value2 infinity? = True
Is Value2 NaN? = False
Is Value2 positive infinity? = True

ตัวอย่างที่ 2: บวกอนันต์และค่าลบปกติ

using System;

public class Demo
{
    public static void Main()
    {
        float f1 = 10.0f / 0.0f;   // +Infinity
        float f2 = -3.0f;          // ค่าลบปกติ

        Console.WriteLine("Value1 = " + f1);
        Console.WriteLine("Hashcode for Value1 = " + f1.GetHashCode());
        Console.WriteLine("TypeCode for Value1 = " + f1.GetTypeCode());
        Console.WriteLine("Is Value1 infinity? = " + Single.IsInfinity(f1));
        Console.WriteLine("Is Value1 NaN? = " + Single.IsNaN(f1));
        Console.WriteLine("Is Value1 positive infinity? = " + Single.IsPositiveInfinity(f1));

        Console.WriteLine("\nValue2 = " + f2);
        Console.WriteLine("Hashcode for Value2 = " + f2.GetHashCode());
        Console.WriteLine("TypeCode for Value2 = " + f2.GetTypeCode());
        Console.WriteLine("Is Value2 infinity? = " + Single.IsInfinity(f2));
        Console.WriteLine("Is Value2 NaN? = " + Single.IsNaN(f2));
        Console.WriteLine("Is Value2 positive infinity? = " + Single.IsPositiveInfinity(f2));
    }
}

ผลลัพธ์

Value1 = ∞
Hashcode for Value1 = 2139095040
TypeCode for Value1 = Single
Is Value1 infinity? = True
Is Value1 NaN? = False
Is Value1 positive infinity? = True

Value2 = -3
Hashcode for Value2 = -1069547520
TypeCode for Value2 = Single
Is Value2 infinity? = False
Is Value2 NaN? = False
Is Value2 positive infinity? = False

ตารางสรุปเมธอดตรวจสอบค่า float พิเศษ

ค่าIsInfinity()IsPositiveInfinity()IsNegativeInfinity()IsNaN()
+Infinity (1.0/0.0)TrueTrueFalseFalse
-Infinity (-1.0/0.0)TrueFalseTrueFalse
NaN (0.0/0.0)FalseFalseFalseTrue
ค่าปกติ (เช่น -3.0, 45.5)FalseFalseFalseFalse

ข้อสังเกต

  • บวกอนันต์เกิดจากการหารเลขบวกด้วยศูนย์ หรือเกิน Single.MaxValue
  • ลบอนันต์เกิดจากการหารเลขลบด้วยศูนย์ หรือต่ำกว่า Single.MinValue
  • เมธอดทั้งหมดเป็น static — เรียกผ่าน Single หรือ float ได้
  • ใช้ร่วมกับ float.IsInfinity() เพื่อตรวจสอบอนันต์ทุกประเภทก่อน ตามด้วย IsPositive/IsNegative