- ベストアンサー
フィールドの数値を四捨五入の繰上げにしたいのですが・・・
- データベースのフィールドの数値を四捨五入で繰り上げにしたいです。数量や単価を入力した後、仕入価格×0.05の式で消費税を計算していますが、繰り上げの数値が出ない問題があります。
- 具体的には、数量5.52リットル×単価38円の結果を210円とし、210円×0.05で消費税を計算していますが、実際には10.5なので消費税が10円になってしまいます。
- この問題を解決するためにはどのような設定をすれば良いのでしょうか?分かりづらいかもしれませんが、補足もさせていただきますので、ご教示いただけますようお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>因みに同じようにRound 関数で210 * 0.05としたら11になりました。 Round 関数自体は問題ないということですよね。 なるほど、原因がわかった気がします。 仕入単価ですが、これは「数量 * 単価」になってるんですよね?よく考えると、数量=5.52、単価=38 だと 5.52 * 38 = 209.76 ですよね。表示上はこれを四捨五入した値 210 になってるだけで、 消費税=仕入単価 * 0.05 の計算式で使われている値は 209.76 なんじゃないでしょうか。 209.76 * 0.05 = 10.488 なので、10.488 を四捨五入すると 10 になります。 おそらく、 仕入単価 = Round(数量 * 単価) 消費税 = Round(仕入単価 * 0.05) にしてやれば、求めたい値になると思います。(あるいは、消費税をRound(Round(数量 * 単価) * 0.05) にする。)
その他の回答 (3)
- tsukasa-12r
- ベストアンサー率65% (358/549)
私はロータス製品を使用したことがないので、あまりよくわからないのですが、ロータス・アプローチにも Round 関数はあるようですね。質問の内容はアプローチの Round 関数を使うと、Round(210 * 0.05) が 10 になる、ということなんでしょうか?それとも、そうではなく、単に 210 * 0.05 としたら結果が 10 となったということでしょうか?もし後者の方なら、とりあえず一度 Round 関数を使用してみてはいかがでしょうか。アプローチの Round 関数と VBA の Round 関数は別のものなので、アプローチの Round 関数は大丈夫なんじゃないかと思いますが。
補足
何度も足をお運び頂き、有難うございました。 多分、ロータスの事もお調べいただいたのでしょう。本当に感謝致します。 Round 関数試してみましたが、10のままでした・・・因みに同じようにRound 関数で210 * 0.05としたら11になりました。 10になる時の式はRound(仕入価格(税抜)* 0.05)と入れています。若しかしたら・・・と思い、Round((数量(リットル) * 単価) * 0.05)としましたが、やはり10のままでした。どこか他のフィールドの設定がまずいのでしょうか?
- tsukasa-12r
- ベストアンサー率65% (358/549)
DBは何を使ってるんでしょうか? Access や Excel の VBA の Round 関数だと、そうなります。(この場合、Fix(x+0.5) で代用できると思います。)
補足
回答、有難うございました。 申し訳ありません、DBはロータスアプローチ2001を使用しております。 参考のサイトを拝見して、内容は理解したのですが・・・これはロータスに当てはめることは出来るのでしょうか?
- gachaharu
- ベストアンサー率23% (3/13)
消費税の項目を整数で取ってるんだと思います。 そこで、計算値を直接入力すると四捨五入になります。 一旦計算値を、変数に入れ、切り上げ処理を行い、それを消費税の項目に入力すれば良いです。 もちろん、途中の計算では小数点以下が発生しますので、その変数は小数点以下が入力出来るデータ型で定義しなければいけません。
補足
早速のご回答、有難うございました! すみません、今月の頭からデータベースソフトを扱い始めたばかりで、ロータス2001アプローチなので手元に資料も無い状態で試行錯誤中なので、若し宜しければ具体的なやり方を教えて頂けませんでしょうか? 因みに今、消費税の項目を変数にしたのですがどうも違うようで・・・(汗) 計算値を変数に入れるとは、一体どう設定すれば良いのでしょうか?式/オプションの欄の数式はそのままでも良いのでしょうか? >その変数は小数点以下が入力出来るデータ型で定義しなければいけません とありますが、具体的にどう設定すれば良いのか・・・アプローチのサイトや、オンラインヘルプ等色々見てみたのですが、ご教示頂いた内容さえ理解できない有様で・・・ 大変恐縮ですが、再度詳細な設定方法をご教示頂けたら幸いです。 何卒宜しくお願い申し上げます。
お礼
有難うございました!! ご指摘の通りに仕入単価もRound 関数で処理をしたところ、無事に11になってくれました! 何度もご教示いただき、本当に感謝いたしております。有難うございました!!