Giới thiệu
Phương thức Single.IsNegativeInfinity() trong C# trả về một giá trị boolean cho biết số float được chỉ định có đánh giá thành vô cực âm (negative infinity) hay không.
Cú pháp
public static bool IsNegativeInfinity (float val);
Tham số val là một số thực dấu chấm động đơn (single-precision floating-point number).
Ví dụ 1
Dưới đây minh họa việc kiểm tra vô cực âm và các giá trị đặc biệt khác:
using System;
public class Demo {
public static void Main() {
float f1 = 5.0f / 0.0f; // Vô cực dương
float f2 = 0.0f / 0.0f; // NaN (Not a Number)
Console.WriteLine("Value1 = " + f1);
Console.WriteLine("Hashcode cho Value1 = " + f1.GetHashCode());
Console.WriteLine("TypeCode cho Value1 = " + f1.GetTypeCode());
Console.WriteLine("Value1 là vô cực (dương hoặc âm)? = " + Single.IsInfinity(f1));
Console.WriteLine("Value1 là NaN? = " + Single.IsNaN(f1));
Console.WriteLine("Value1 là vô cực âm? = " + Single.IsNegativeInfinity(f1));
Console.WriteLine("\nValue2 = " + f2);
Console.WriteLine("Hashcode cho Value2 = " + f2.GetHashCode());
Console.WriteLine("TypeCode cho Value2 = " + f2.GetTypeCode());
Console.WriteLine("Value2 là vô cực (dương hoặc âm)? = " + Single.IsInfinity(f2));
Console.WriteLine("Value2 là NaN? = " + Single.IsNaN(f2));
Console.WriteLine("Value2 là vô cực âm? = " + Single.IsNegativeInfinity(f2));
}
}
Đầu ra ví dụ 1
Value1 = ∞ Hashcode cho Value1 = 2139095040 TypeCode cho Value1 = Single Value1 là vô cực (dương hoặc âm)? = True Value1 là NaN? = False Value1 là vô cực âm? = False Value2 = NaN Hashcode cho Value2 = -4194304 TypeCode cho Value2 = Single Value2 là vô cực (dương hoặc âm)? = False Value2 là NaN? = True Value2 là vô cực âm? = False
Ví dụ 2
Ví dụ thứ hai kiểm tra rõ ràng giá trị vô cực âm và giá trị tối thiểu của Single:
using System;
public class Demo {
public static void Main() {
float f1 = -25.0f / 0.0f; // Vô cực âm
float f2 = Single.MinValue; // Giá trị hữu hạn nhỏ nhất
Console.WriteLine("Value1 = " + f1);
Console.WriteLine("Hashcode cho Value1 = " + f1.GetHashCode());
Console.WriteLine("TypeCode cho Value1 = " + f1.GetTypeCode());
Console.WriteLine("Value1 là vô cực (dương hoặc âm)? = " + Single.IsInfinity(f1));
Console.WriteLine("Value1 là NaN? = " + Single.IsNaN(f1));
Console.WriteLine("Value1 là vô cực âm? = " + Single.IsNegativeInfinity(f1));
Console.WriteLine("\nValue2 = " + f2);
Console.WriteLine("Hashcode cho Value2 = " + f2.GetHashCode());
Console.WriteLine("TypeCode cho Value2 = " + f2.GetTypeCode());
Console.WriteLine("Value2 là vô cực (dương hoặc âm)? = " + Single.IsInfinity(f2));
Console.WriteLine("Value2 là NaN? = " + Single.IsNaN(f2));
Console.WriteLine("Value2 là vô cực âm? = " + Single.IsNegativeInfinity(f2));
}
}
Đầu ra ví dụ 2
Value1 = -∞ Hashcode cho Value1 = -8388608 TypeCode cho Value1 = Single Value1 là vô cực (dương hoặc âm)? = True Value1 là NaN? = False Value1 là vô cực âm? = True Value2 = -3.402823E+38 Hashcode cho Value2 = -8388609 TypeCode cho Value2 = Single Value2 là vô cực (dương hoặc âm)? = False Value2 là NaN? = False Value2 là vô cực âm? = False
Tóm tắt
Single.IsNegativeInfinity()chỉ trả vềtruekhi giá trị chính xác làfloat.NegativeInfinity(hoặc kết quả của phép chia số âm cho 0).- Giá trị
Single.MinValuelà một số hữu hạn rất nhỏ, không phải vô cực, nên phương thức trả vềfalse. - Phương thức này hữu ích khi xử lý các phép tính toán học có thể tạo ra vô cực, giúp tránh lỗi logic trong chương trình.