dポイントプレゼントキャンペーン実施中!

受注金額や発注金額をDBから読み込み、税抜および税込の金額を算出するプログラムを作成しています。
税込金額を算出する際は金額+floor(金額*税率)の式を用いているのですが、
消費税分が整数になる場合、floor計算後に金額が1足らなくなることがあります。
桁上がりしない程度の数を足せばいいと言われたのですが、税率8%計算でギリギリ繰り上がらない0.039を足しても、2500万前後で誤差が発生してしまいます。
扱う金額は現在DBにある中では最大で4000万を越えます。
どうにか誤差が発生しないようにできないでしょうか?

A 回答 (2件)

誤差の出るケースを吟味して、一定の条件が見つかれば、それを元に計算式を変えればいいと思います。

    • good
    • 0
この回答へのお礼

floor計算をせずに消費税分の金額を算出したところ、税率をかけたところで一定の金額を超えると~.98…などの誤差が発生していることがわかりました。
floorは関係なかったようです。
ありがとうございました。

お礼日時:2014/07/30 18:30

>誤差が発生しないようにできないでしょうか?



質問の意図がわからないのですが、明細単位と総計での消費税誤差の話であれば
根本的な考え方として消費税とはそもそもが誤差がでる仕組みなので
小手先でなにをやっても無駄。会計上も税務上もする明細で調整する必要がない

8%の消費税をまるめるためには25円単位で取引をする必要があり
そうでなければ明細単位で丸めて計算し、総額との誤差を「消費税差異」として処理する
消費税差異がプラスであれば雑収入だしマイナスであれば雑損

明細単位であわせたいとか、取引先との違算を調整したいのであれば
値引きやリベートで都度調整する、普通は経理の人がうまくやってくれる

私の解釈がちがいfloor関数に内在するなんらかの数学的な誤差の話であれば
誤差の具体的な例示があれば調べようがあるかも
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!