Giới thiệu
Phương thức Single.IsPositiveInfinity() trong C# trả về giá trị boolean cho biết số float được chỉ định có đánh giá thành vô cực dương (positive infinity) hay không.
Cú pháp
public static bool IsPositiveInfinity (float val);
Tham số val là số thực dấu chấm động đơn (single-precision floating-point number).
Ví dụ 1: So sánh vô cực âm và dương
using System;
public class Demo {
public static void Main() {
float f1 = -25.0f / 0.0f; // Vô cực âm
float f2 = 5.0f / 0.0f; // Vô cực dương
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 dương? = " + Single.IsPositiveInfinity(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 dương? = " + Single.IsPositiveInfinity(f2));
}
}
Đầu ra ví dụ 1
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 dương? = False Value2 = ∞ Hashcode cho Value2 = 2139095040 TypeCode cho Value2 = Single Value2 là vô cực (dương hoặc âm)? = True Value2 là NaN? = False Value2 là vô cực dương? = True
Ví dụ 2: Vô cực dương và số âm bình thường
using System;
public class Demo {
public static void Main() {
float f1 = 10.0f / 0.0f; // Vô cực dương
float f2 = -3.0f; // Số âm bình thường
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 dương? = " + Single.IsPositiveInfinity(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 dương? = " + Single.IsPositiveInfinity(f2));
}
}
Đầu ra ví dụ 2
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 dương? = True Value2 = -3 Hashcode cho Value2 = -1069547520 TypeCode cho Value2 = Single Value2 là vô cực (dương hoặc âm)? = False Value2 là NaN? = False Value2 là vô cực dương? = False
Bảng tóm tắt các phương thức kiểm tra Single
| Giá trị | IsInfinity | IsNaN | IsNegativeInfinity | IsPositiveInfinity |
|---|---|---|---|---|
| 5.0f/0.0f (∞) | True | False | False | True |
| -5.0f/0.0f (-∞) | True | False | True | False |
| 0.0f/0.0f (NaN) | False | True | False | False |
| 45.5f | False | False | False | False |
| -3.0f | False | False | False | False |
Lưu ý
- Chỉ có phép chia số khác 0 cho 0 mới tạo ra vô cực. Phép chia 0/0 tạo ra NaN.
float.PositiveInfinityvàfloat.NegativeInfinitylà hằng số đại diện.- Khi làm việc với dữ liệu từ cảm biến, tính toán khoa học, luôn kiểm tra vô cực/NaN trước khi dùng kết quả.