Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Phương thức Single.IsNegativeInfinity() trong C# với các ví dụ

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ề true khi 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.MinValue là 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.