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

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

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 (∞)TrueFalseFalseTrue
-5.0f/0.0f (-∞)TrueFalseTrueFalse
0.0f/0.0f (NaN)FalseTrueFalseFalse
45.5fFalseFalseFalseFalse
-3.0fFalseFalseFalseFalse

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.PositiveInfinity và float.NegativeInfinity là 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ả.