เมธอด Single.IsNegativeInfinity() ใน C# ใช้สำหรับตรวจสอบว่าค่าที่ระบุเป็นลบอนันต์ (negative infinity) หรือไม่ โดยจะคืนค่า true หากค่าเป็นลบอนันต์ มิฉะนั้นจะคืนค่า false
ไวยากรณ์ (Syntax)
รูปแบบการใช้งานมีดังนี้:
public static bool IsNegativeInfinity (float val);
พารามิเตอร์ val คือตัวเลขทศนิยมความแม่นยำเดี่ยว (single-precision floating-point number) ที่ต้องการตรวจสอบ
ตัวอย่างที่ 1: การหารด้วยศูนย์
ตัวอย่างต่อไปนี้สาธิตการใช้งานเมธอดนี้กับค่าที่ได้จากการหารด้วยศูนย์:
using System;
public class Demo
{
public static void Main()
{
float f1 = 5.0f / 0.0f; // ผลลัพธ์เป็น +Infinity
float f2 = 0.0f / 0.0f; // ผลลัพธ์เป็น NaN
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 negative infinity? = " + Single.IsNegativeInfinity(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 negative infinity? = " + Single.IsNegativeInfinity(f2));
}
}
ผลลัพธ์
Value1 = ∞ Hashcode for Value1 = 2139095040 TypeCode for Value1 = Single Is Value1 infinity? = True Is Value1 NaN? = False Is Value1 negative infinity? = False Value2 = NaN Hashcode for Value2 = -4194304 TypeCode for Value2 = Single Is Value2 infinity? = False Is Value2 NaN? = True Is Value2 negative infinity? = False
ตัวอย่างที่ 2: ค่าลบอนันต์และค่าต่ำสุดของ Single
ตัวอย่างนี้ทดสอบกับค่าลบอนันต์ที่ได้จากการหารเลขลบด้วยศูนย์ และค่า Single.MinValue:
using System;
public class Demo
{
public static void Main()
{
float f1 = -25.0f / 0.0f; // ผลลัพธ์เป็น -Infinity
float f2 = Single.MinValue; // ค่าต่ำสุดของ float
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 negative infinity? = " + Single.IsNegativeInfinity(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 negative infinity? = " + Single.IsNegativeInfinity(f2));
}
}
ผลลัพธ์
Value1 = -∞ Hashcode for Value1 = -8388608 TypeCode for Value1 = Single Is Value1 infinity? = True Is Value1 NaN? = False Is Value1 negative infinity? = True Value2 = -3.402823E+38 Hashcode for Value2 = -8388609 TypeCode for Value2 = Single Is Value2 infinity? = False Is Value2 NaN? = False Is Value2 negative infinity? = False
สรุป
Single.IsNegativeInfinity()คืนค่าtrueก็ต่อเมื่อค่าที่ตรวจสอบเป็นลบอนันต์ (-Infinity) เท่านั้น- ค่า
NaN(Not a Number) และค่าบวกอนันต์ (+Infinity) จะคืนค่าfalse - ค่าปกติรวมถึง
Single.MinValueก็จะคืนค่าfalseเพราะไม่ใช่ลบอนันต์