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

Thuộc tính ToEven trong C#

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.