質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

5回答

3781閲覧

複数回請求する際の税込金額の整合性について

K.T_build

総合スコア29

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2016/04/14 06:09

編集2016/04/14 10:40

建設業の請求システムを実装しようとしています。
組立時 ○○%, 解体時 ○○% と、複数回請求するのですが、
税込金額の合算が小数点が発生したことにより1円分合わなくなることがあります。

例:
イメージ説明

これを何とか修正したいのですが、良い計算方法が見つかりません。
この問題は請求関連のシステムではよく起こるものだと思うのですが
皆さんはどう対処されているのでしょうか?
合計のあう計算方法があるのでしたら、ご教授ください。

【追記】
1円の差額が発生しているかをチェックして、あれば組立時に含めるといった
方法もあるかと思いますが、それは最終手段にしようかと思っています。
可能であれば、計算式ですっきりできればありがたいです。

【追記2】
今回の件ですが、社内システムなので融通はかなり効くようになっています。
そのため、組立時は切り上げ、解体時は切り捨てなどこちらで仕様を決めることができます。
私が知りたいこととしては、切り上げ、切捨て、四捨五入を使って下記の式が成り立つ計算方法を探しています。

税込金額=【請求金額】【消費税】
組立金額=【請求金額】
【組立割合(%)】【消費税】
解体金額=【請求金額】
【解体割合(%)】*【消費税】

これを請求金額がどのような値でも成り立つ計算方法を探しています。
税込金額=組立金額+解体金額

お手数ですが、お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

まずは、国税庁のサイトを参照してください。
ホーム>税について調べる>タックスアンサー>消費税>税額計算のあらまし>No.6371 端数計算
No.6371 端数計算
https://www.nta.go.jp/taxanswer/shohi/6371.htm
No.6383 課税標準額に対する消費税額の計算の特例
https://www.nta.go.jp/taxanswer/shohi/6383.htm

この様な情報を参考にしつつ、
公認会計士、税理士さん、仕様策定者と相談
最終的には、使用者が選択、設定可能な様に実装すると思います。

投稿2016/04/14 06:24

daive

総合スコア2028

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K.T_build

2016/04/14 10:30

回答有難うございます。 この情報は参考にさせていただきます。 もし、仕様面以外にどのような計算式であれば、複数の請求があった場合の 端数計算があうか教えていただければ助かります。
daive

2016/04/14 12:06

式を問う前に、紹介した処以外でも、法令、政令、通達の確認をしてください。 ⇒なので、公認会計士、税理士、仕様策定者と相談と書いてあります。  その上で、端数を計上するのかしないのか、  計上するのであれば、どの様に行うのかは、選択できれば良いわけです。  計上する場合に、1円端数をどの様に計上するかは、仕様の問題です。 何故かというと、考え方の問題でもあるからです。 Odacchiさんが、書かれている様な事が起きるのは、 企業間の力関係も影響するからです。
daive

2016/04/14 12:21 編集

単純には、都度税額を計算するから、1円端数問題がでるので、 税込み総額の決定金額から、税込み請求額を引いていけば、端数が残りますよね? 確定時点で、仕様、設定により、適切な処理を行えば良いだけです。 予め分割請求の回数が判明している場合も、企業間の取決めで、 端数処理の方法まで、書かれているはずです。
guest

0

組立時 ○○%, 解体時 ○○% と、複数回請求するのですが、

「複数回」とは、組立時と解体時の2回だけでしょうか?

であれば、

税込金額=【請求金額】*【消費税】 組立金額=何らかの計算式で税込金額から算出した金額 解体金額=【税込金額】-【組立金額】

が、最も簡単かつ確実な計算方法ではないでしょうか?

投稿2016/04/25 14:40

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

要件定義で仕様をどのように決めるかに関しては他の人が回答してくださっているので省略するとして、
プログラミングで小数点以下(浮動小数点)を扱うと厳密な値が出ない場合があります。
これは基本的にコンピュータの数値計算が2進法を用いていることに起因する、言語共通の問題です。
(参考:http://dobon.net/vb/dotnet/beginner/floatingpointerror.html)

小数点以下を厳密に計算・積算するのであれば、それに特化したライブラリの使用が求められる場合があります。
計算に使用する言語がjavaであればBigDecimalクラス、phpだと
http://php.net/manual/ja/ref.bc.php このあたりでしょうか。

求められている回答に合致しているかわかりませんが、もし計算のずれがこのようなコンピュータ内部の浮動小数点計算に起因しているのであれば、上記のようなクラスライブラリを試してみてください。

ちなみに、javascriptでは全ての数値がNumber(浮動小数点)として扱われるので、javascript側で請求の厳密計算はできません。サーバーで計算したものを文字列で返してそのまま画面に描画するのがベターかと思われます。

投稿2016/04/25 05:35

yohira0616

総合スコア255

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私もエクセルで同じような社内での計算表を作っていたのですが、正直、経理担当の考え方次第で仕様が変わってきます。
携帯電話の利用料金をまとめていたのですが、キャリア各社で内税だったり、利用料は外税だけど電話本体の分割料金は内税だったり、国際電話は非課税だったり。
それを合計するわけですから、会社が払っている合計額とそれぞれ細分化した額に差額が出てくるのは仰るように当たり前に発生するのです。
結局私自身は、税法上、どうなっているのか不勉強でわからなかったのですが、経理担当に相談したところ端数は適当に割り振るという指示でしたので、最終合計額と実際の支払った額の差額を求めて、割り振ることが可能な項目に優先順位は特に意識せずに1円ずつ順番に割り振っていきました。
厳密に言うと社内の各部門に割り振られる経費に不公平が発生したので、問題がなかったわけではありません。
どうやっても数学的にルール化はできないと思うので、とにかくコンピュータ的にできる方法で作って社内のものであればあらかじめ社内のパワーバランス?をとれるようにネゴっておくのが重要かと思います。
計算手順をまとめますと、1件1件を切り捨てで計算し、実際と計算の差額を求め、なんらかの優先順位をつけておけば並べ替えて、上から差額がなくなるまで1円ずつ振っていくということになろうかと思います。

投稿2016/04/15 03:56

yosatonet

総合スコア46

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

企業によりルールが異なるようで、小数点以下の取り扱いは、「切り捨て」「切り上げ」「四捨五入」かを請求書毎に設定できるような設計にするのがベターです。

投稿2016/04/14 07:13

Odacchi

総合スコア907

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問