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

Phương thức Convert.ToInt16 trong C#

Phương thức Convert.ToInt16() chuyển đổi một giá trị sang số nguyên 16-bit có dấu (short, phạm vi -32,768 đến 32,767).

Ví dụ chuyển từ double

double doubleNum = 3.456;
short shortNum = Convert.ToInt16(doubleNum);  // 3 (làm tròn)

Mã nguồn hoàn chỉnh

using System;

public class Demo
{
    public static void Main()
    {
        double doubleNum = 3.456;
        short shortNum = Convert.ToInt16(doubleNum);
        Console.WriteLine("Converted {0} to {1}", doubleNum, shortNum);
    }
}

Kết quả

Converted 3.456 to 3

Quy tắc làm tròn (Banker's Rounding)

Giá trị đầu vàoKết quả shortGiải thích
3.4563.456 < .5 → xuống
3.54.5 → làm tròn đến số chẵn gần nhất (4)
4.54.5 → làm tròn đến số chẵn gần nhất (4)
-3.5-4Số âm cũng làm tròn đến chẵn

Các overload phổ biến

Convert.ToInt16(string);      // "123" → 123
Convert.ToInt16(double);      // 123.45 → 123
Convert.ToInt16(float);       // 123.45f → 123
Convert.ToInt16(decimal);     // 123.45m → 123
Convert.ToInt16(bool);        // true → 1, false → 0
Convert.ToInt16(object);      // Unbox rồi chuyển

Ngoại lệ

  • OverflowException: Giá trị ngoài [-32768, 32767]
  • FormatException: String không đúng định dạng

So sánh với short.Parse / TryParse

// Parse - chỉ string, ném exception
short a = short.Parse("123");

// TryParse - an toàn
short b;
bool ok = short.TryParse("123", out b);

// Convert - nhiều kiểu hơn, null→0
short c = Convert.ToInt16(null);  // 0