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

Phương thức Single.ToString() trong C#

Phương thức Single.ToString() trong C# được dùng để chuyển đổi giá trị số của instance float này thành biểu diễn chuỗi tương đương. Hỗ trợ nhiều định dạng chuẩn và tùy chỉnh.

Cú pháp

public override string ToString();
public string ToString(string format);
public string ToString(IFormatProvider provider);
public string ToString(string format, IFormatProvider provider);

Ví dụ 1: Vô cực dương, số âm, và các kiểm tra đặc biệt

using System;

public class Demo
{
    public static void Main()
    {
        float f1 = 10.0f / 0.0f; // PositiveInfinity
        float f2 = -3.0f;

        Console.WriteLine("Giá trị 1 (String) = " + f1.ToString());
        Console.WriteLine("Mã băm giá trị 1 = " + f1.GetHashCode());
        Console.WriteLine("TypeCode giá trị 1 = " + f1.GetTypeCode());
        Console.WriteLine("Là vô cực? = " + Single.IsInfinity(f1));
        Console.WriteLine("Là NaN? = " + Single.IsNaN(f1));
        Console.WriteLine("Là vô cực dương? = " + Single.IsPositiveInfinity(f1));

        Console.WriteLine("\nGiá trị 2 (String) = " + f2.ToString());
        Console.WriteLine("Mã băm giá trị 2 = " + f2.GetHashCode());
        Console.WriteLine("TypeCode giá trị 2 = " + f2.GetTypeCode());
        Console.WriteLine("Là vô cực? = " + Single.IsInfinity(f2));
        Console.WriteLine("Là NaN? = " + Single.IsNaN(f2));
        Console.WriteLine("Là vô cực dương? = " + Single.IsPositiveInfinity(f2));
    }
}

Kết quả

Giá trị 1 (String) = ∞
Mã băm giá trị 1 = 2139095040
TypeCode giá trị 1 = Single
Là vô cực? = True
Là NaN? = False
Là vô cực dương? = True

Giá trị 2 (String) = -3
Mã băm giá trị 2 = -1069547520
TypeCode giá trị 2 = Single
Là vô cực? = False
Là NaN? = False
Là vô cực dương? = False

Ví dụ 2: Vô cực dương, NaN, vô cực âm

using System;

public class Demo
{
    public static void Main()
    {
        float f1 = 5.0f / 0.0f;  // PositiveInfinity
        float f2 = 0.0f / 0.0f;  // NaN

        Console.WriteLine("Giá trị 1 (String) = " + f1.ToString());
        Console.WriteLine("Mã băm giá trị 1 = " + f1.GetHashCode());
        Console.WriteLine("TypeCode giá trị 1 = " + f1.GetTypeCode());
        Console.WriteLine("Là vô cực? = " + Single.IsInfinity(f1));
        Console.WriteLine("Là NaN? = " + Single.IsNaN(f1));
        Console.WriteLine("Là vô cực âm? = " + Single.IsNegativeInfinity(f1));

        Console.WriteLine("\nGiá trị 2 (String) = " + f2.ToString());
        Console.WriteLine("Mã băm giá trị 2 = " + f2.GetHashCode());
        Console.WriteLine("TypeCode giá trị 2 = " + f2.GetTypeCode());
        Console.WriteLine("Là vô cực? = " + Single.IsInfinity(f2));
        Console.WriteLine("Là NaN? = " + Single.IsNaN(f2));
        Console.WriteLine("Là vô cực âm? = " + Single.IsNegativeInfinity(f2));
    }
}

Kết quả

Giá trị 1 (String) = ∞
Mã băm giá trị 1 = 2139095040
TypeCode giá trị 1 = Single
Là vô cực? = True
Là NaN? = False
Là vô cực âm? = False

Giá trị 2 (String) = NaN
Mã băm giá trị 2 = -4194304
TypeCode giá trị 2 = Single
Là vô cực? = False
Là NaN? = True
Là vô cực âm? = False

Các định dạng số phổ biến cho float (Standard Numeric Format)

Định dạng Ví dụ (123.456f) Mô tả
\"G\" / mặc định 123.456 General, độ chính xác mặc định 7 chữ số
\"F2\" 123.46 Fixed-point, 2 chữ số thập phân
\"E\" / \"e\" 1.234560E+002 Ký pháp khoa học
\"R\" 123.456 Round-trip (giữ đủ độ chính xác để parse ngược)
\"P\" 12,345.60% Phần trăm

Ví dụ định dạng tùy chỉnh

float f = 123.4567f;

Console.WriteLine(f.ToString("F4"));     // 123.4567
Console.WriteLine(f.ToString("E2"));     // 1.23E+002
Console.WriteLine(f.ToString("0.00"));   // 123.46 (custom)
Console.WriteLine(f.ToString("#.##"));   // 123.46
Console.WriteLine(f.ToString("R"));      // 123.4567 (round-trip)

Lưu ý

  • float (Single) có độ chính xác ~7 chữ số thập phân. Dùng \"R\" để round-trip an toàn.
  • Giá trị đặc biệt: \"Infinity\", \"-Infinity\", \"NaN\" (không phụ thuộc culture).
  • Dùng CultureInfo.InvariantCulture cho format không phụ thuộc locale.