一貫していないように思わ:
.Net Round Bug
In C#: Math.Round(2.5) result is 2 (instead of 3)! Are you kidding me?恐らくMath.round()は可能な重複
コード:
var d1 = Math.Round(187.5); // 188
var d2 = Math.Round(62.5); // 62
なぜそれはそうでしょうか?
一貫していないように思わ:
.Net Round Bug
In C#: Math.Round(2.5) result is 2 (instead of 3)! Are you kidding me?恐らくMath.round()は可能な重複
コード:
var d1 = Math.Round(187.5); // 188
var d2 = Math.Round(62.5); // 62
なぜそれはそうでしょうか?
デフォルトでは、Banker's Roundingと呼ばれる丸めの形式が使用されます。これは、入力が2つの整数の中間にある場合、最も近いの整数にさらにの整数に丸めます。
Why does .NET use banker's rounding as default?を参照して、この設計上の決定を理解してください。
この動作が気に入らない場合は、this overloadをMath.Round
とするといつでもMidPointRoundingMode
(ToEven、AwayFromZero)を指定できます。
あなたは方法のこのオーバーロードを呼び出してこの動作を変更することができます - http://msdn.microsoft.com/en-us/library/ms131274.aspx
@Joey:彼らは特に編集ウィンドウの間に、投稿された直後の編集投稿はご遠慮ください。ありがとう。 – Ani
これは技術的に可能です。投稿には情報が不足していて、編集ウィンドウの後でさえその答えがたくさん残っています。とにかくこの場合に行った変更を元に戻すか無効にすることができますので、私が行ったことにどこで害がありましたか? – Joey
@Joey:編集ウィンドウで投稿が編集されている可能性が高いので、しばらく待つことができます。このケースでは、実際には「上書き」しませんでした。実際には編集内容が矛盾していました。 – Ani