端数処理の問題:0.999...(無限)と1の関係について

このQ&Aのポイント
  • 0.999...(無限)と1は数値として完全に一緒ですか?
  • 公共工事における前金払いの端数処理について質問です。
  • 発注者が行っている端数処理の方法に疑問を持ちました。
回答を見る
  • ベストアンサー

0.999…(無限)と端数処理

0.999…(無限)と1は数値としては完全に一緒ですよね。では、(1÷3)×3の答えの小数点第2位以下を切り捨てたら、それは0.9なのでしょうか?それとも1.0、つまり1なのでしょうか? 以下、数学とは離れてしまいますが、質問の背景を補足します。 私は建設業にたずさわっているのですが、公共工事の場合、請負代金の4割を限度に発注者から前金払してもらえる制度があります。 役所の予算は会計年度ごとに決まっているため、工期が会計年度をまたぐ場合は、各会計年度で前金払が行われます。なお、前払金の金額単位は決まっており、発注者により1万円単位、10万円単位など様々です。 具体的には、ある役所が発注する「年度またぎ工事」について、請負代金の総額は3億1,500万円なのですが、平成25年度が1億500万円、平成26年度が残りの2億1,000万円と分割されています。 前払金の総額は総請負代金の4割である1億2,600万円ですが、この発注者では、各年度の前払金額は、請負金額の年度比率に按分して1万円単位で支出されることになっています。 各年度の前払金額は、私は平成25年度が「4,200万円」、平成26年度は「8,400万円」だと思うのですが、発注者側はそれぞれ「4,199万円」と「8,399万円」だというのです。 発注者によると、平成25年度分は「(105百万円÷315百万円)×126百万円=41,999,999.999…(無限)円」なので、1万円未満を切り捨てて「4,199万円」であると。また、平成26年度分は、前払金総額1億2,600万円の残りの8,401万円でもなく、平成26年度分の請負代金2億1,000万円の4割である8,400万円でもなく、やっぱり「(210百万円÷315百万円)×126百万円=83,999,999.999…(無限)円」なので、1万円未満を切り捨てて「8,399万円」らしいのです。 要は、端数処理の問題なのですが、0.999…(無限)と1が完全に一緒なのであれば、41,999,999.999…(無限)円と4,200万円も、83,999,999.999…(無限)円と8,400万円も、それぞれ同額なのではないでしょうか。 「行政のルール」と言われればそれまでですが、数学的にはどうなのかなと思い、質問させていただきました。ご教示のほど、よろしくお願いいたします。

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

  • ベストアンサー
回答No.5

1)行政のルールは、知りませんが、数学的には貴方が正しいです。 2)行政のルールに計算順序まで書いてあれば別ですが   総前払金額を年度比率で按分するのであれば、この順番に式を作り        126百万円x105百万円÷315百万円   でも良いわけで、この順番で計算すれば4200万円になります。 3)年度比率で按分とは、比率ですから、行政ルールでは按分数値を整数にしろとは書いてないと思いますので分数のままでよいと思います。        105百万円÷315百万円=1/3        126百万円x1/3=4200万円   1万円未満を切り捨は、最後の答えにのみ適用と考えます。   私なら、行政官にクレームをつけます。 4)前払い金額が行政官のいう通りとしても、残金は(請負金額ー前払い金)なわけですから、   最終全額もらえるので、現実問題としては、どちらでも良いようにも思います。    

その他の回答 (12)

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.13

> 平成25年度分は「(105百万円÷315百万円)×126百万円  ご質問の間違いでしょう。計算式はもしかして、   (105百万円÷315日)×126日 ですかね。  でも、小学校だか中学校だかで習った通り、掛け算と割り算は順番を変えても良いのですから、   (105百万円÷315日)×126日   = (105[百万円]×126[日])÷315[日] = 13230[百万円・日] ÷315[日] = 42[百万円] である。端数なんか元々出やしません。  ところが、コッパ公務員は割り算をまずやって、(105百万円÷315日)を計算した。いったん「1日当たりの工事価格」を出した訳です。これはまだ計算の途中である。なのにこの段階で切り捨てをやって、それから工事日数を掛け算をした。だから答が合わない。  こういう風に、金額を細切れにしておいて、端数を切り捨ててから積み上げる、というのが「お役所の<節約>法」の常套手段のようです。  そんな計算が許されるのなら、   1日=86400[秒] ですから、「1秒あたりの工事価格」を計算すれば   105[百万円]÷(315×86400[秒]) = 3.858…[円/秒] である。ここで1円未満の切り捨てをやると、1秒あたりの工事価格は3[円/秒]であるから、   3[円/秒]×(126×86400[秒])   3[円/秒]×(10886400[秒]) = 32659200円 となり、もっと安くなる。  一体、なぜ切り捨てをするのか。コッパ公務員は「0.8円などという金額はない。だから切り捨てるのだ」と説明します。この点について、どのコッパ公務員も同じことを言うように思います。きっと、そう教育されているんでしょう。  いっそのこと「1ミリ秒あたりの工事価格」を計算すれば、0.003858…[円/ミリ秒]だから(1ミリ秒=1秒の千分の一)、切り捨てて0円。こうすれば、全く1円も払わなくて済んでしまいます。ばかばかしいですねえ。  さて、「掛け算と割り算は順番を変えても良い」というのは、割り算を先にして   (105[百万円]÷315[日])×126日 [日]   = (1/3)[百万円/日]×126[日]   = 0.333…[百万円/日]×126[日]   = 0.333…[百万円/日]×3÷3×126[日]   = (0.333…×3)[百万円/日]×(126[日]÷3)   = 0.999…[百万円/日]×42[日]   = 1 [百万円/日]×42[日]   = 42[百万円] と計算しても同じである、ということであり、つまり   0.999… = 1 である。これが数学の話です。

gootaroh
質問者

お礼

みなさん、たくさんのご回答ありがとうございました。いずれも大変参考になりました。実際のところ「0.999…(無限に9)」と「1」が等しいことは、一般にはあまり普及していません。「数学教育の怠慢」といえば厳しい言い方になるかもしれませんが、日常生活や行政手続などにおいて、意外と影響がある場面もあるのです。今回は「公共工事の前金払」という特殊な事例でしたが、別の事例もありますので、別質問でお付き合いいただけたらと思います。みなさん、本当にありがとうございました。

  • masa2211
  • ベストアンサー率43% (178/411)
回答No.12

発注者の説明がどこか変です。 請負金額の年度比率に按分なのだから、まず年度比率を計算。 そうすると、33.33%になります。  ※国交省積算基準に準拠すると仮定すると、比率を%表示した場合は小数2位まで、(四捨五入丸め。)   上記の丸めルールは、直工費から間接費を求めるときの率の丸め基準であり、年度またぎについてではない   のですが、このルールを準用することを仮定します。  よって、比率計算のところに丸めが入るため、4199.58万円となり、無限小数にはならないし、  比率を1桁丸め(=33.3%)がルールなら、4195万円。 なお、この現象は、コンピュータで銭勘定する場合、大抵発生します。 数値に有理数型を用いている場合は、1/3などが正確に表せるから、この問題は発生しませんが 有理数型を装備しているプログラム言語はレア。(装備している例:フリーソフトの十進BASIC.) 銭勘定向きのCOBOLの場合、変数ごとに桁数を宣言する(たとえば、整数15位+小数2位)ので、 1/3は、たとえば33.33%として計算します。役所の計算どおりです。(桁数が一致しているかは別として。) 技術計算向きのFORTRANの場合、浮動小数点だから、有効桁+指数桁、たとえば有効15桁、指数は308まで。(倍精度実数。) 厳密には、内部は2進数なので、0.1などは循環小数となるので誤差ありです。 EXCELなども浮動小数点形式(桁は上で書いた通り)なので、こういった誤差があります。 ですから、0.0001を1万回足して1を引いてもゼロにはなりません。 昔の大型コンピュータ(IBM360)は更に悲惨で、 内部は16進で0.XXXXXX×16^yタイプ。現状の主流より最大最小の幅は大きいが精度が悪い。 しかも、 X=0.1 (計算式内に数値記述) data/X/0.1 (初期値としてデータを定義) read(*.*)X (キーボードやパンチカードからデータを読み取り) で、メモリーに保持される値が同じとは限らない(同じコンピュータ、同じコンパイラを使用、という条件で。) という、今ならトンデモ仕様。 よって、理論計算なら1.0になるところ、0.999...1(最後の桁1~2桁はアヤフヤ。) となるので整数切捨て丸めを行ったら1でなくゼロになる、という事態に悩まされます。 で、古いプログラム本には、 ・上記のように記述方法が異なる場合、数値が一致する保証は無い。 ・0.0001を1万回足して1を引いてもゼロにはならない。 ・そういうことを想定してプログラムせよ。 と、こうなっています。 (共立出版 プログラム書法。) 丸めがうっとおしい場合は、有理数モードとか超多倍長モード(たとえば10進1000桁)という方法も無いではないです。 (前述十進BASICは、有理数モードと10進1000桁を持っている。) でも、それでも、ケタが多いけれど無限桁ではないため、結局は計算途中で結果丸めが必要。 つまり、数学どおりに計算したくてもそうする方法が無い(勿論、ソロバンでも筆算でもダメ。) ということになるので、計算機のルールで計算するか、計算機ルールをすこしいじって手計算ルールで計算する (計算機的には、計算誤差をわざと混入させる意味になる)か、いずれか。 いずれにせよ、無限小数は取り扱い不能で、数値の丸めかたのルールを設定する必要があります。 数値の丸めかたのルールを設定した時点で、数学がどうのこうの、言っても意味がなくなります。

  • alwen25
  • ベストアンサー率21% (272/1253)
回答No.11

>0.999…(無限)と1は数値としては完全に一緒ですよね。では、(1÷3)×3の答えの小数点第2位以下を切り捨てたら、それは0.9なのでしょうか?それとも1.0、つまり1なのでしょうか? 私も行政の話は分からないので数学の話を書きます。 0.9999..=1の証明方法は、色々あると思いますが 私が高校で習ったものは無限級数を使う方法です。 等比数列の無限級数の公式に 0.9+0.09+0.009+0.0009+...(無限) を当てはめると厳密に1になります。 厳密に1(整数)の小数点第二位を四捨五入しても1になります。 1.0と書くと数学ではなく物理学や化学の有効数字を表しているように見えます。

回答No.10

数学だと可能無限、実無限論争とかがあって難しい話に なるそうですが、質問の問題は有限桁の数値計算の計算誤差問題ですよね。 前金なら半端な金額でも問題ないだろうし、四捨五入でも よいと思います。 有理数計算機を作って割り算を遅延させるという手も 有りますが、最終的な計算結果が端数を持つ場合は あまり意味が無いと思います(^^;

  • Water_5
  • ベストアンサー率17% (56/314)
回答No.9

1.0=0.99999...... は数学上の話です。それを日常生活の前金払い制度に 当てはめようとすることが、そもそも無理です。誤りです。 数学上の事と日常生活上の事は次元が違うので、かみ合いません。 ”π”なども数学上は数兆桁ですが、土木建築業界では π=3.14でがんがん計算します。ビルを造り、橋を作ります。こんな具合です。

  • uyama33
  • ベストアンサー率30% (137/450)
回答No.8

平成25年度分は「(105百万円÷315百万円)×126百万円=41,999,999.999…(無限)円」なので、1万円未満を切り捨てて「4,199万円」であると 平成25年度分は「 126百万円*(105百万円÷315百万円)= (126百万円*105百万円)÷315百万円= 4200 万円 のように計算してくれ と交渉してはいかがでしょうか? あとは、計算規則の書いてある文書を見せてもらって、コピーして 公開する。 後半は、お仕事の関係で難しいかも?

回答No.7

A.5 の追加です 最初の質問に答えるのを忘れていましたが、回答を書いている間に他の皆さんが応えてしまったので前払いについての追加です。 確認ですが、行政ルールでは、計算途中で数字を丸めろとは、言っていないですよね。 41,999,999・・(無限)は、数学では、42,000,000です。最後に円をつけて金額にしてから端数処理をするので、計算途中は、厳密に数学どおりに計算しなければいけません。 41,999,999・・(無限)が42,000,000より小さいと言う、行政官は、無知の横暴としか言い様がありません。

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.6

「行政のルール」は分からないので、数学の話をします。 端数処理は、割り算に対して定義されるのではなく、 割り算の商を表す小数に対して定義されるものです。 小数とは、数値そのものではなく、 数値を表記する方法に過ぎません。 1÷3×3 の答えを小数第2位で切り捨てるという 言い方自体が、意味不明というか、定義不良で、 正しくは、1÷3×3 の答えを表す小数 1.000… を 小数第2位で切り捨てて 1.0 とするか、 1÷3×3 の答えを表す小数 0.9999… を 小数第2位で切り捨てて 0.9 とするか しなければならないのです。 無限小数なら、ひとつの数に対してひとつの表記 しかありませんから、混乱は起こりませんが、 有限小数は、末尾が 0 の循環になる小数と 末尾が 9 の循環になる小数のふたつの表記を持つため、 「数値を切り捨て」では、意味が定まらないのです。 そもそも、こんな混乱が起こった根本の原因は、 1 と 0.999… が「完全に一致」という 大雑把過ぎる理解にあります。 小数 1.000… と 0.999… は、同じ実数 1 を 表示していますから、数値としては完全に一致 していますが、見れば一目瞭然なように、 文字列としては異なります。 そして、「切り捨て」という操作は、 数値ではなく、文字列としての小数を対象とする ものなのです。

  • stomachman
  • ベストアンサー率57% (1014/1775)
回答No.4

 幾ら正しい計算でも、途中で切り捨てなんてことをやれば、合計が合わなくなるのは当たり前。  計算方法を必要以上に複雑怪奇にして、部分の合計を計算しては切り捨てることを繰り返し、積み上げた結果が時々何万円とか何千円とか安くなるようにする。それで「国民の税金を節約したぞ!手柄だ」というのを「仕事」だと思ってる役人が居るんですよねえ。こういうヤカラの人件費をこそ、根こそぎ節約したい。  瑕疵もないのに契約金額の満額を払わないのはもちろん違法であり、民事訴訟を起こしてやりたいもんですが、相手は暇を持て余したコッパ公務員。大変だから誰もやらない。やらないからコッパも駆除できない。コバエみたいなもんですな。

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.3

>間違いです。1と0.9・・・は同一ではないから小数点がある。 間違いじゃないんですよね。 質問者さんが書かれている建設業の話とは完全に離れてしまいますが、 数学的には0.999... = 1です。

関連するQ&A

  • 建設工事の部分払いについて

    建設工事で部分払いの請求するのですが、役所の指定する金額がおかしいのです。その額で議会を通っているのですが、異議申し立てをすることになりました。 請負代金300,000,000円 前払金 120,000,000円(請負金の0.4) 出来高 200,000,000円 役所の算出式は、出来高×0.9-120,000,000=60,000,000 契約約款に定められている算出式だと、出来高×(0.9-0.4[前払金比率])=100,000,000 と、40,000,000円の差額が出ているわけです。 この要旨で異議申し立てするのかと思ったのですが、社長は下記の算出式で文書を作成するように指示がありました。 請負金額-出来高=100,000,000(残工事金額) 残工事金額×0.4=40,000,000(残工事の前金) 出来高×0.9-(120,000,000-40,000,000)=100,000,000 結果は一緒なのでいいんですが、約款にある算出式と違うという方が分かりやすいと思うんですよね。私が数字に弱すぎるだけでしょうか?

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

    消費税の端数処理の差額の処理について教えてください。 会計ソフトの仕入の端数処理は切捨ての設定です。 仕入先によって端数処理が異なること、 また会計ソフトは仕入れる度に仕入れ伝票に入力するようになっており、 1回分の取引に対する総額に消費税が計算されるのに対し、 大体の仕入れ先において請求金額の総額に消費税が計算されること、 以上の点から、会計ソフト上では、仕入金額と請求金額に消費税の差額が生じます。 差額を合わすには、どのような処理(仕訳)をすればよいのでしょうか? 例えば、材料の仕入先との消費税の差額は、 仕入れ伝票に以下のように仕訳ていいのでしょうか? 日付け…支払った日 消費税調整 ○○円 (科目:材料費) 課税対象外 よろしくお願いします。

  • 工事請負金額変更契約書?

    工事請負基本契約書というものを、発注者からもらったのですが、 以下のことが分からず困っています。 (1)請負金額が載っていないので、いくらの印紙を貼ってよいのか分からない。 (2)契約書の中身を読むと、「請負代金額の変更」という項目があるので、この契約書は【請負金額変更契約書】にあたるのか? (3)発注者側から、4千円の印紙を貼ってと言われた。なぜ4千円なのか? どうぞよろしくお願いします。

  • 飲み会で割り勘の端数処理は?

    忘年会、その他の飲み会で、費用を割り勘にして幹事が一括支払いする場合、通常、端数はどのように処理されていますか? たとえば、10人の総額が、45,590円だったとすると、単純計算では、一人4,559円になりますが、通常、そんな細かい金額にせず、100円単位で、4,500円にするか、4600円にすると思います。 4,500円にすると、幹事は590円損をし、4,600円にすると、幹事は410円得をします。通常、どちらで、処理していますか? ただし、端数を次回のイベントで処理するなどの機会はないものとします。

  • 消費税の端数切捨について

    飲食店を経営しています。 今までは、内税だったのですがこの4月からの消費税増税で外税とすることにしました。 ところが、金額が50円単位だったのでおつりも50円より小さい硬貨は用意していません でしたが、外税とすることで1円単位の消費税が発生することになります。 お客様にいただく金額を50円単位で丸めたいのですが、可能でしょうか? 例えば、飲食代金が1,000円、消費税が80円で合計1,080のところを合計1,050にすることは できるでしょうか?

  • 仮の振込をどう領収書で処理していいか分からず困っています

    夫が個人事業で行なっている建築業のお金の管理を私がしています。 まったく経理の知識がないため、どう処理していいか困っています。 当社が元請けで、4~5段階に分けて工事をし、その都度、施主に 工事代金を支払ってもらっています。現在、以下の状況が起こっています。 ●2段階目の工事費の一部を前金で支払ってもらい、仮領収書として渡した ●施主が工事費用の融資を受けていて、工事発注した証拠を  融資元の金融機関に提出するために、すべて当社の名前での  領収書が必要との事(当社の名前でのみ融資を受けているため)。  そのため、当社の実際の受注額とは別に、施主が他社に工事発注したり  備品購入したりした金額についても、当社に発注したとして領収書を  発行してほしいという依頼を受けた。それに合わせて、口座でお金を動かした。 具体的には以下のようなお金の動きがありました。 ●80万円の前金を現金で当社が受取った (125万円の2段階目工事費の一部として) ●545万円が当社に振込まれた (内訳)A:125万円:実際の工事費     B:245万円:施主が他社発注した工事費+備品購入費     C:175万円:次回当社に発注予定の工事費 ●500万円を当社が引出し、施主に戻した (内訳)A':80万円:前金で受取った工事費を返金     B:245万円:施主が他社発注した工事費+備品購入費     C:175万円:次回当社に発注予定の工事費 施主からは、融資元の金融機関に提出するために、当社の名前で、 370万円(A+B)の領収書(但書:工事代金の一部として)を発行してほしいと言われ、 依頼どおり渡しました。用途が済めば、返却してくれると言っています。 また、正式な領収書として、別に125万円の工事費分を発行する予定です。 それと引換に、前金80万円分の仮領収書は返却してもらう予定です。 困っているのは、B:245万円とC:175万円についてどういう書類を 当社が保管する必要があるかということです(領収書、請求書等)。 単純に、1枚の領収書(請求書?)に、上記の通り、545万/500万の金額と その内訳を書けばいいのでしょうか? それとも、差額の45万円を相殺分として 内訳に545万-500万の詳細を書けばいいでしょうか。 または、それぞれの名目別に書類があるべきでしょうか??  また、施主から受取るべき書類は何でしょうか? 混乱しています。どなたか、ご指導いただけますでしょうか。

  • 前払いで受け取った作業料金を返金する場合の会計処理について

    プログラム的な作業の注文を受け、前払いで料金を受け取っていたのですが、都合によりキャンセルとなり、返金することになりました。 受け取った代金は前年度に売り上げとして会計処理済です。 本年度に返金ということになりますが、この場合、出納帳に付ける区分けなどの会計処理は具体的にどう行えばよろしいのでしょうか? また、相手に対して、料金受け取り時に見積書、請求書、納品書を送ったのですが、今回は何かそういう類のものは必要でしょうか?

  • 建設工事下請契約書の記載内容について

    下請けへの契約書を作成することになり、わからない点で困っています。 契約金額は300万以下とります。 建設工事下請契約書の記載内容の中で 請負代金の支払時期及び方法(労務費相当分については現金払)の項目で (1) 前金払       契約締結後   日以内に支払       円            (現金:手形 =   :     手形期間    日) 質問(1)上記の前金払は法的に契約締結後何日以内が最長日となりますか? 質問(2)現金:手形 =   :   これは10:0のように比率を記載するのですか? (2) 部分払         月   日締切   翌月   日支払            (現金:手形 =   :     手形期間    日) 質問(3)月 日締切 翌月 日支払 これは元請会社の締切日と支払日を記載するのですか? (3) 引渡し時の支払   請求後   日以内         円            (現金:手形 =   :     手形期間    日) 質問(4)法的に請求後 日以内が最長日となりますか? 質問(5)引渡し時の支払金額ですが、契約金額から前金払と部分払を差し引いた金額 となるのでしょうが、部分払いの金額が未定のため、金額が設定できませんが どのように記載すればよろしのでしょうか? 以上よろしくお願いいたします。

  • リフォーム工事契約契約の遅れの違約金について

    リフォームの発注をしていますが、納期が遅れています。 文章の解釈をお教えください。 契約書には、 「工期内に工事が完了しない場合は、工事完了予定日から完成の日までの日数に応じ請負代金額から可分の出来形部分等に対する請負代金相当額を控除した額につき、年4パーセントの割合で計算した額の違約金を支払う事とする。」 とあります。 これは例えば 1000万円の請負金額で7割出来た状態で完成まで6ヶ月の遅れの場合、 300万円に年4%分を掛けて、300万円×0.02(6ヶ月分2パーセント)=60000円の違約金 6万円分の違約金を請求できるということでしょうか? どうか契約文の解釈が出来る方アドバイスをご教示お願いします。

  • 簿記の問題で

    以下の簿記の仕訳について教えてください。 「前払保険料36,000円は平成×2年4月1日に支払った1年分の火災保険料の金額である。会計期間は平成×2年1月1日から平成×2年12月31日までの1年である」 答えが以下のようになるようなのですが、なぜ前払保険料が出てくるのに繰延べではなく見越しの処理になるのでしょうか? (支払保険料) 27,000(前払保険料)27,000