問題タブ [bankers-rounding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
2393 参照

c# - .NET 通貨フォーマッタ: バンカーの丸めの使用を指定できますか?

バンカーの丸めを使用するフォーマット文字列を取得する方法を知っている人はいますか? 「{0:c}」を使用していますが、バンカーの丸めと同じように丸められません。このMath.Round()メソッドは、バンカーの丸めを行います。フォーマット文字列を使用して丸め方を複製できるようにする必要があります。


注:元の質問はかなり誤解を招くものであり、正規表現に言及している回答はそれに由来しています。

0 投票する
15 に答える
715076 参照

c# - C#で数値を小数点以下2桁に丸めるにはどうすればよいですか?

Math.Round関数を使用してこれを行いたい

0 投票する
4 に答える
3186 参照

c# - .NET で「正しい」算術丸めを行う方法はありますか? / C#

数値を小数点以下第 1 位に丸めようとしていますが、さまざまな MidpointRounding オプションを考慮すると、うまく機能しているようです。ただし、その数値が四捨五入に算術的に影響する小数点以下の桁数が連続している場合、問題が発生します。

例:

0.10.11..0.19それ0.141..0.44は動作します:

しかし、0.141..0.149常に を返しますが0.10.146..0.149丸める必要があります0.2:

この問題に対処する関数を考え出そうとしましたが、この場合はうまく機能しますが、0.144449最初の10進数に丸めようとするともちろん失敗します(これは である必要があります0.2が、結果は0.1.)(それはありませんMath.Round() でも動作しません。)

解決策は、すべての数字を列挙し、4 より大きい最初の値を見つけてから切り上げるか、切り捨てることだと思います。問題 1: それはばかげているように思えます。問題 2: 無数の乗算と減算を行わずに数字を列挙する方法がわかりません。

簡単に言えば、それを行うための最良の方法は何ですか?

0 投票する
4 に答える
4609 参照

c# - C# バンカーの丸め誤差

..18.57 を返します。
私が試した他のすべての数値について、銀行家の丸めは期待どおりに機能しました。たとえば、Math.Round(2.565,2) は 2.56 を返しました。

なぜ、いつそれが起こるのか手がかりはありますか?エラーですか、それともバンカーの丸めに関する何かが欠けていますか?

ありがとう..

0 投票する
5 に答える
31693 参照

rounding - 丸め基準-財務計算

財務データの計算に関しては、「丸め」基準の存在に興味があります。私の最初の考えは、データがユーザー(プレゼンテーション層)に提示されているときにのみ丸めを実行することです。

「丸められた」データがその後の計算に使用される場合、「丸められた」数値または「生の」数値を使用する必要がありますか?誰かアドバイスはありますか?

銀行の丸めなど、さまざまな丸め方法を知っていることに注意してください。

0 投票する
3 に答える
979 参照

c# - C# のラウンド関数

decimals パラメータは、戻り値の小数桁数を指定し、範囲は 0 ~ 28 です。decimals がゼロの場合、整数が返されます。

d の小数点以下第 1 桁の値が 5 の場合、小数点以下の桁が奇数の場合は切り上げられ、偶数の場合はそのままになります。d の精度が 10 進数未満の場合、d はそのまま返されます。

3.45 が 3.4 を返す理由..この出力を理解できません。

0 投票する
1 に答える
770 参照

teradata - Teradata - 設定の変更によるバンカーの丸めの削除

Excelで計算を模倣する必要があります。正確な答えを得る必要があります。計算はいくつかのポイントで丸められます。Excel は X.5 を切り上げます。Teradata はバンカーの丸め (X.5 を偶数の # に丸める) を使用しているようです。

会社のデータベースの設定を変更できません。使用できる構文はありますか?

ケースステートメントで一時的な修正がありますが、より良い解決策があることを願っています。

ありがとう!

0 投票する
4 に答える
2917 参照

c# - Math.Round を使用した丸めの問題

上記のコードは次のようになります

  • 43.523 --> 43.52

  • 12.65 --> 12.65

  • 43.565 --> 43.56

43.565 --> 43.56 ではなく 43.565 --> 43.57 が必要です。しかし、私はまだ他の 43.523 --> 43.52 と 12.65 --> 12.65 をそのまま丸める必要があります。

0 投票する
1 に答える
389 参照

c# - 小数点以下の桁数を指定する場合、MidpointRounding.ToEven での Math.Round の動作は正しいですか?

Math.Roundを使用しようとしていますが、得られる結果は期待したものではありません。次の数字が5で、その後に他の数字を入れることができない場合でも、丸められることがわかりました。

Decimal.Roundの動作も同じです。

MidpointRoundingで説明されているように、丸めは、丸め先の小数点以下の桁数だけを考慮に入れるべきではありませんか?

丸め操作は、暗黙的または指定された精度を持つ元の数値を取ります。その精度に 1 を加えた次の桁を調べます。元の数値と同じ精度で最も近い数値を返します。