• ベストアンサー

最適な端数処理方法と処理位置を知りたい

1から99,999,999,999までの整数Aと0.01から999,999.99までの小数Bがあり、A÷Bの商Cに再度Bを掛けて得られる積をAと同じ値にしたいです。A÷BとC×Bの算出時に四捨五入等・切り捨て・切り上げのいずれかの処理を行わなければならない場合、両式の小数点第何位でどの処理をすれば結果がAになるでしょうか。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (7995/17085)
回答No.3

整数Aを小数Bでわったとき,最も小さくなるのは 1/999999.99=0.0000010000000100000001... であって,これを小数点以下5桁までに丸めたら0.00000になりますから,これに小数Bを掛けて整数Aに戻すことはできません。 しかし小数点以下6桁までに丸めたら0.000001になりますから,これに小数Bを掛けて整数に丸めれば整数Aに戻ります。 結論としては A/Bでは小数点以下6桁までになるように四捨五入をする C*Bでは小数点以下0桁までになるように四捨五入をする です。

satolovic
質問者

お礼

ご回答有難うございます。正に求めていた答でした。素晴らしい。 実は1万ほどのランダムな数で計算をして、f272 さんのお答え辺りではないかとの肌感覚を持っておりましたが、どうやって証明できるか分かりませんでした。感謝します。

その他の回答 (3)

  • staratras
  • ベストアンサー率40% (1438/3508)
回答No.4

ご質問の趣旨を勘違いしていたようで失礼いたしました。割るときも掛けるときも四捨五入すれば、確かに元に戻せますね。被除数Aが最大12桁の整数、除数Bが最大6桁で小数第2位までなので、商Cは小数第7位を四捨五入して小数第6位まで求めておけばよさそうです。もちろんC×Bは小数第1位を四捨五入して整数に丸めます。 これから先は数学ではなく職場の世間話的蛇足です。場合によっては0.9999999を四捨五入して1.000000に切り上げるのが好まれない場合があります。ご質問はそうではないでしょうけれど、Aが実績値でBが目標値であるようなとき、「目標に僅かとはいえ及ばないのに達成率が100%とは」と言い出すような上司がいる場合です。そのような場合は商を小数第7位までに丸めておく必要があるかもしれません。 例 A=999999、B=999999.1 C=A/B≒0.99999989999991≒1.000000 C≒1.000000 なら D=BC=999999.1 四捨五入して999999 (元に戻る) C≒0.999999 なら D=BC=999998.1… 四捨五入して999998 (元に戻らない) C≒0.9999999 なら D=BC=999999.0… 四捨五入して999999 (元に戻る) -

satolovic
質問者

お礼

ご丁寧にありがとうございます。さらに理解が深まりました。失礼ながら、目標にわずかとはいえ…のくだりは大笑いしました。以後充分留意します。

  • staratras
  • ベストアンサー率40% (1438/3508)
回答No.2

単純なA=1、B=3の場合を考えてみるだけで、そのようなことは不可能であることがわかります。 A÷B=1/3=0.33333333333… と無限に続きますので、 どこかの桁で切り捨て(この場合は四捨五入も同じ)れば、C=A÷B<1/3 となるのでC×B<1となり、逆にどこかの桁で切り上げれば、C=A÷B>1/3 となるのでC×B>1となります。どの桁で処理しても(四捨五入等・切り捨て・切り上げのいずれかから選ぶ限り)「数学的には」Aには戻りません。 もっとも単純な解決法は、A÷Bの数値を分数のままにしておくことではないかと思います。

satolovic
質問者

お礼

ご回答有難うございます。A÷Bの数値を分数のままにする、とは思い付きませんでした。参考になります。

  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.1

そのような方法はありません。 四捨五入等・切り捨て・切り上げをしないようにするしかありません。

satolovic
質問者

お礼

早速のご回答ありがとうございます。方法がない、とのことなので許容できる位置を探してみたいと思います。頭が弱いので今の所総当たりで計算することしか思い付きませんが。

関連するQ&A

  • 電卓の小数の端数処理機能…切り上げは必要?

    電卓の購入を検討しています。 小数の端数処理機能のあるものを買いたいのですが、切り捨て・四捨五入はあっても、切り上げがないものが多いようです。 これは、実際に使用する際、切り上げが必要になる場面が切り捨て・四捨五入と比べて少ないということでしょうか? 使用する場面は、会計事務所等を想定しています。 切り上げ機能が必要かどうか、アドバイスをお願いします。

  • 消費税の端数処理について

    消費税の端数処理について 「四捨五入」「切り上げ」「切捨て」と企業側が任意で選択出来るのは知っていますが、 実際、多くの企業で選択されているのは、どの方法でしょうか? よろしくお願いします。

  • SQLServerでの切り上げ処理

    SQLServerで、小数部の丸め処理で困っています。 切り捨て → round(150.7, 0, 1) 四捨五入 → round(150.7) というところまではなんとかわかったのですが、切り上げ処理がうまくいきません。 ceiling(150.7)やfloor(150.7)などいろいろ試してみたのですが、どうしてもうまくいきません(T-T) どなたかわかる方がいらっしゃいましたらアドバイスお願いします。

  • エクセル 関数を教えてください。

    エクセル 関数を教えてください。 数点第一位の値が5のときだけ小数点第二位の値で切り上げか切り捨てかを判断します。 小数点第二位が0のときは切り捨て、1以上のときは切り上げ計算になります。 (例)4.50点→4点 、 4.51点→5点 小数点第一位が5以外の場合は四捨五入と同じ要領です。 ●A1に数字入力、B1に計算式をお願いします。

  • 算数の問題を教えてください。

    小学生です。次の問題の解き方を教えてください。 <算数問題> 整数Aを整数Bで割ったときの商の小数部分を切り捨てた数をA◎B、整数Aを整数Bで割ったときの商の小数第1位を四捨五入した数をA※Bとします。ただし、整数Bが0のときは考えないものとします。C※7-C◎7=1となるとき、Cとしてあてはまる整数のうち小さいほうから20番目の数を求めなさい。

  • ファイルメーカーで小数点以下の切り上げ

    ファイルメーカーで小数点以下の切り上げをするに、どのような関数を使えばよろしいでしょうか? 四捨五入と切り捨ては標準であるのですが、切り上げが見当たらず、またどのように計算を組めばよいか分からず困っています。 わずかでも小数点以下の端数が発生した場合に、整数に切り上げる処理をしたいと思っています。(例としては10.001→11) ファイルメーカーの使用バージョンは9です。

  • 端数処理における「小数以下」等の表記について

    端数処理をするために四捨五入や切捨てを行う場合、その正しい表記の仕方(放送や報道,公文書等における表記の仕方)はどうなのでしょうか。 (例)円周率3.14159...を「3.14」として表す場合 1 小数点第3位切捨て 2 小数点第3位以下切捨て 3 小数点以下第3位切捨て 4 小数第3位切捨て 5 小数第3位以下切捨て 6 小数以下第3位切捨て 7 その他 (また、例えば1の場合に『小数点第3位「を」切捨て』のように、「を」が入るのかどうかも悩ましいです)

  • エクセル 切捨てや、四捨五入で出た値の集計式

    切捨てや、四捨五入で出た値を集計すると、多少の誤差が出る場合があります。どの様な数式にすればいいでしょうか。例題を下記にしるしましたので具体的に教えて下さい。     A          B         C 1   293,500      17,610 2   349,750      2,099       15,512 A1とA2は既定値。B1は、TRUNC(A*0.006,0)で小数点以下切捨て。 B2は、SUM(A2*0.006)で小数点以下四捨五入。 C2は、SUM(B1-B2)。 C2の正解は15,511ですが、1多い答えがでます。

  • 化学での有効数字について(途中計算)

     以下についてアドバイスいただけると助かります。  有効数字について  和・差について・・・小数点以下の桁数が少ない方に合わせる  積・商について・・・桁数が少ない方に合わせる  については、分かったのですが、有効数字3桁での指定があるときに  19.1、24.5889、0.12553、3.2952の4つの数にたいして  ○和を筆算で求める場合    小数第1位に合わせるために、    19.1→19.10(小数第2位表示)    24.5889→24.58(小数第3位切り捨て)    0.12553→0.12(小数第3位切り捨て)    3.2952→3.29(小数第3位切り捨て)  として和を求め、小数第1位(小数第2位四捨五入)にする  ○積を筆算で求める場合    有効数字3桁に合わせるために、    19.1→19.10(有効数字4桁表示)    24.5889→24.58(5桁目切り捨て)    0.12553→0.1255(5桁目切り捨て)    3.2952→3.295(5桁目切り捨て)  として積を求め、有効数字を3桁(4桁目は四捨五入)にする  と思っています。  1.このやり方で大学受験では問題ないのでしょうか。    特に気になっているのは、計算をする前の丸め方(すべて切り捨てにしているところ)です。  2.計算ステップがいくつもあり、一度に計算ができない場合、そのステップ毎に得られる数の    丸め方は切り捨て・四捨五入のどちらがよいのでしょうか。  よろしくお願いします。    

  • 小学算数・・整数の問題・・教えてください

    何度考えてもしっくりいきません。分かりやすい解答をおしえてください。ww ある2桁の整数を8と9で割ります。その時の商の小数第一位をそれぞれ四捨五入すると同じ値になりました。 (1)この時の2桁の整数の中で最大の物を求めなさい。 (2)このような2桁の整数は全部で何個ありますか。 (2)の場合、解答では商の小数第一位を四捨五入して、整数部分の「一の位」が9になるとき、8になるとき、という風に、大きい順に試し、その個数を足し合わせています。理解できません。(^^;; 無論(1)の場合も商の小数第一位を四捨五入して、9になる数、8になる数、7になる数という風にそれぞれ試しているのですが、何故そのようにするのかわかりません(;;) なぜでしょうか? また、 もっと分かりやすい方法があれば大感激です。 ヨロシクお願いします。