誰かが私の場合、以下のコードが両方の場合に1100を出力する理由を説明できますか?なぜMath.Round()は小数点以下1100以下のMidpointRoundingを変更する
decimal toEven = 1100.5m;
decimal awayFromZero = 1099.5m;
Console.WriteLine(Math.Round(toEven)); // output 1100
Console.WriteLine(Math.Round(awayFromZero)); // output 1100
その恐らくMath.round()を使用すると、0.5小数点恐らくMath.round(と1100年の下で、小数点以下に恐らくMath.round()を使用している場合は番号1100の後MidpointRounding戦略を変更するには)AwayFromZero MidpointRoundingを使用していますように見えますデフォルトではしかし、1100を超える小数点を使用すると、Math.Round()はデフォルトでToEven MidpointRoundを使用します。どうして?
私はMidpointRoundingを自分の問題を解決するように設定できます。私はなぜMath.Round()がこのように動作するのか不思議です。
「1100」はどうやって見つかりましたか?デフォルトでは常に偶数に丸められます。 – Groo