.NETがデフォルトで銀行の丸めを使用するのはなぜですか?
ドキュメントによると、このdecimal.Roundメソッドは、ほとんどのアプリケーションでは一般的ではない、丸めアルゴリズムを使用しています。したがって、私は常に、より自然な切り上げアルゴリズムを実行するカスタム関数を作成することになります。 public static decimal RoundHalfUp(this decimal d, int decimals) { if (decimals < 0) { throw new ArgumentException("The decimals must be non-negative", "decimals"); } decimal multiplier = (decimal)Math.Pow(10, decimals); decimal number = d * multiplier; if (decimal.Truncate(number) < number) { number += 0.5m; } return decimal.Round(number) / multiplier; } このフレームワーク設計の決定の背後にある理由を誰かが知っていますか? …