web-dev-qa-db-ja.com

丸め基準-財務計算

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

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

丸めの方法が異なることに注意してください。つまり、銀行の丸めなどです。

31
Guamez

最初の最も重要な規則: 10進データ型 を使用します。バイナリ浮動小数点型は決して使用しないでください。

正確な丸めを実行する必要がある場合、 ユーロと国の通貨 の間の変換などの規制によって義務付けられる可能性があります。

そのようなルールがない場合は、すべての計算を高精度で行い、表示のためにのみ丸めます。つまり、以降の計算に丸められた値を使用しません。これにより、全体的に最高の精度が得られます。

15

私が働いている金融ソフトウェア会社の灰色ひげのメインフレームプログラマーに聞いたところ、有名な標準はなく、プログラマーの慣習次第だと彼は言った。

統計学者は少なくとも1906年以来丸めの問題に気づいていますが、それを支持する財務基準を見つけることは困難です。

this sit eによると、「欧州委員会の報告書 ユーロの導入と通貨額の丸め は、以前は銀行の丸めに標準的なアプローチがなかったことを示唆しています。」

一般に、作業しているベース(base-2またはbase-10)に関係なく、対称丸めモードを使用します。

これにより、計算中の系統的な偏りが回避されます。

このようなモードはRound-Half-To-Evenであり、「バンカーの丸め」としても知られています。

丸めモードや切り捨てモードなど、数値コンテキストを明示的に指定できる言語ツールを使用します。たとえば、Pythonの decimal モジュールです。 Cライブラリによって行われる暗黙の仮定は、計算に適さない場合があります。

http://en.wikipedia.org/wiki/Rounding#Rounding_to_integer

14
Joe Koberg

「すべてを統制するための1つの標準」の存在を見たことはありません 参照したように)丸め規則はいくつもあり、業界/顧客/および通貨コード(--- (http://en.wikipedia.org/wiki/ISO_4217 )-誰もが小数点以下2桁を使用するわけではないため、問題はさらに複雑になります。結局のところ、顧客は実装したいルールを指定する必要があります...

3
chrismh

プログラマーを導くためにも、法廷での防御策としても、これに関する明確な基準がないことに苛立ちを感じています。給与の最も近い方への「通常の」丸めを行うだけでは、給与小切手で数ペニーの過小支払いにつながる可能性があり、これは労働弁護士がクラックのように食べてしまうものです。

基本給与レートは小数第2位でのみ指定することもできますが( "$ 22.71/hourで雇われています")、(時間内の複数の給与レートを平均することによって決定される)混合残業のようなものは、実質的な時間給レートになります。 $ 23.37183475 /時間。

どうやって残業代を支払いますか?

15 hours x 23.37183475 x 1.5 = $525.87 rounded from $525.86628187
15 hours x 23.37       x 1.5 = $525.82

なぜDIDクライアントから5セントを盗むのですか?残念ながら、私はこれについて冗談を言っているのではありません。

これは、完全な精度の値で計算し、切り捨てたバージョンを表示すると、さらに不快になります。上記の最初の計算を実行しますが、給与明細のレートは$ 23.37しか表示されません。

給与明細の計算はペニーに結びついていないので、説明する必要がありますが、従業員の好意であったとしても、労働弁護士が水中で血の匂いを嗅いで他の人を探し始めるのに十分な場合がありますもの。

1つのアプローチは、自然な方向ではなく、常に従業員に有利なように丸めることです。そのため、体系的な賃金盗難の非難はありません。

1
Steve Friedl

スケーリングされた整数の使用を検討してください。

つまり、小数のドルではなく、整数のペニーを格納します。

0
Beth