Phương thức Convert.ToInt64() chuyển đổi giá trị decimal sang số nguyên 64-bit có dấu (long). Giá trị decimal được làm tròn đến số nguyên gần nhất (banker's rounding: làm tròn đến số chẵn khi ở giữa).
Ví dụ cơ bản
decimal d = 310.23m;
long res = Convert.ToInt64(d); // 310
Mã nguồn hoàn chỉnh
using System;
class Demo
{
static void Main()
{
decimal d = 190.66m;
long res = Convert.ToInt64(d);
Console.WriteLine("Converted Decimal '{0}' to Int64 value {1}", d, res);
}
}
Kết quả
Converted Decimal '190.66' to Int64 value 191
Quy tắc làm tròn (Banker's Rounding)
| Decimal | Kết quả Int64 | Giải thích |
|---|---|---|
| 190.66m | 191 | .66 > .5 → lên |
| 190.50m | 190 | .50 → làm tròn đến số chẵn (190) |
| 191.50m | 192 | .50 → làm tròn đến số chẵn (192) |
| -190.50m | -190 | Số âm cũng làm tròn đến chẵn |