有人可以向我解釋爲什麼在這兩種情況下,下面的代碼輸出1100?爲什麼Math.Round()在十進制後改變MidpointRounding 1100
decimal toEven = 1100.5m;
decimal awayFromZero = 1099.5m;
Console.WriteLine(Math.Round(toEven)); // output 1100
Console.WriteLine(Math.Round(awayFromZero)); // output 1100
它看起來像Math.Round()數1100前後發生了改變MidpointRounding策略如果您使用小數Math.Round()1100與下一個0.5小數Math.Round()使用AwayFromZero MidpointRounding默認。但是如果您使用1100以上的小數Math.Round()將默認使用ToEven MidpointRound。爲什麼?
我知道我可以設置MidpointRounding我自己來解決問題。我只是很好奇爲什麼Math.Round()是這樣工作的。
你是怎麼找到'1100'的?它默認總是舍入偶數。 – Groo