MidpointRounding.ToEven (Banker's Rounding) làm tròn đến số chẵn gần nhất khi ở chính giữa.
decimal val = 70.45M; decimal.Round(val, 0, MidpointRounding.ToEven)
Ví dụ
using System;
using System.Linq;
class Demo
{
static void Main()
{
decimal val = 70.45M;
Console.WriteLine(decimal.Round(val, 0, MidpointRounding.ToEven));
}
}
Kết quả
70
Giải thích: 70.45 làm tròn 0 chữ số thập phân -> 70 (vì .45 < .5).
Ví dụ Banker's Rounding thực sự:
Math.Round(2.5, MidpointRounding.ToEven)= 2 (số chẵn)Math.Round(3.5, MidpointRounding.ToEven)= 4 (số chẵn)Math.Round(2.5, MidpointRounding.AwayFromZero)= 3 (làm tròn xa 0)
ToEven giảm bias thống kê trong tính toán tài chính/khoa học.