Phương thức Double.IsInfinity() trong C# được dùng để trả về giá trị cho biết xem số double được chỉ định có đánh giá thành vô cực dương hoặc vô cực âm hay không.
Cú pháp
public static bool IsInfinity(double d);
d: Số double (double-precision) cần kiểm tra.
Trả về: true nếu d là Double.PositiveInfinity hoặc Double.NegativeInfinity; ngược lại false.
Ví dụ 1: Số bình thường (không vô cực)
using System;
public class Demo
{
public static void Main()
{
double d = 5.5;
Console.WriteLine("Giá trị Double = " + d);
Console.WriteLine("Mã băm = " + d.GetHashCode());
Console.WriteLine("TypeCode = " + d.GetTypeCode());
Console.WriteLine("Là vô cực? = " + Double.IsInfinity(d));
}
}
Kết quả
Giá trị Double = 5.5 Mã băm = 1075183616 TypeCode = Double Là vô cực? = False
Ví dụ 2: Tạo vô cực dương bằng chia cho 0
using System;
public class Demo
{
public static void Main()
{
double d = 1.0 / 0.0; // PositiveInfinity
Console.WriteLine("Giá trị Double = " + d);
Console.WriteLine("Mã băm = " + d.GetHashCode());
Console.WriteLine("TypeCode = " + d.GetTypeCode());
Console.WriteLine("Là vô cực? = " + Double.IsInfinity(d));
}
}
Kết quả
Giá trị Double = ∞ Mã băm = 2146435072 TypeCode = Double Là vô cực? = True
Các hằng số và phương thức liên quan của Double
| Thành viên | Giá trị | Mô tả |
|---|---|---|
Double.PositiveInfinity |
∞ | Vô cực dương |
Double.NegativeInfinity |
-∞ | Vô cực âm |
Double.NaN |
NaN | Không phải số |
Double.MaxValue |
~1.79E+308 | Số hữu hạn lớn nhất |
Double.MinValue |
~-1.79E+308 | Số hữu hạn nhỏ nhất |
Double.IsInfinity(d) |
bool | Kiểm tra ±∞ |
Double.IsPositiveInfinity(d) |
bool | Kiểm tra +∞ |
Double.IsNegativeInfinity(d) |
bool | Kiểm tra -∞ |
Double.IsNaN(d) |
bool | Kiểm tra NaN |
Ví dụ kiểm tra toàn diện
double[] values = {
1.0 / 0.0, // +Infinity
-1.0 / 0.0, // -Infinity
0.0 / 0.0, // NaN
Double.MaxValue, // Hữu hạn lớn
123.45 // Bình thường
};
foreach (double v in values)
{
Console.WriteLine($"{v,20} | Infinity: {Double.IsInfinity(v),5} | +Inf: {Double.IsPositiveInfinity(v),5} | -Inf: {Double.IsNegativeInfinity(v),5} | NaN: {Double.IsNaN(v),5}");
}
Kết quả mẫu
∞ | Infinity: True | +Inf: True | -Inf: False | NaN: False
-∞ | Infinity: True | +Inf: False | -Inf: True | NaN: False
NaN | Infinity: False | +Inf: False | -Inf: False | NaN: True
1.79769E+308 | Infinity: False | +Inf: False | -Inf: False | NaN: False
123.45 | Infinity: False | +Inf: False | -Inf: False | NaN: False
Lưu ý
Double.MaxValuevàMinValuelà hữu hạn, không phải vô cực.- Phép chia
số_khác_0 / 0.0cho vô cực (dấu theo toán hạng). - Phép chia
0.0 / 0.0cho NaN. IsInfinitylà static method, gọi trên kiểuDouble.- Hữu ích khi validate kết quả tính toán khoa học, vật lý, tài chính.