アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして、よろしくお願いします。
大学でコンピューターの勉強をしています。講義で
「0.1を10個加えても1.0にはならない」
という内容がありました。

理由を詳しく知りたいです。よろしくお願いします。

A 回答 (6件)

>「0.1を10個加えても1.0にはならない」



二進数で十進計算を行う話だと思いますが、その言い方は正確じゃないです。
有限桁の二進数で、十進の0.1は表現できないというのが正しい。
0.1に近いけど正確に0.1じゃない物を10個加えても1にはならなくて当然。

0.33333333333333・・・と3が有限回数続く物を3個足しても1にならないのと同じです。3が無限個続くのなら3個足すと1になるのですが。

じゃあ、どうしたらいいか。

長さの足し算・引き算をするとして、0.1mまで扱いたいなら、長さを0.1mを単位に扱うことです。つまり、1mを10で、0.5mを5で表します。最後の計算結果が出たところでmに単位を直せばいい。
かけ算・割り算もいまの応用で出来ますが、ちょっと難しいので説明は省略。
    • good
    • 0

No.1さんのアドバイスが一番答えに近いかな。


設問を正確に書くと、10進数の0.1を2進数(の有限桁)で表記したものを10個足しても答えは厳密な1.0にならない、
というもの。

10進数の世界でたとえるなら、「電卓で(1/3)を計算して、その結果を3個足したら答えは1になるか?」というのに近い気がします。
    • good
    • 0

ごく当然の疑問だと思います。



A.「0.1を10個加えても1.0にはならない」という文章の中に使われている数字がすべて2進数で統一されているなら誤り。

B.「0.1を10個加えても1.0にはならない」という文章の中に使われている数字がすべて10進数で統一されているなら誤り。

つまりA、Bどちらにしても1.0になるのではないでしょうか。

そんないい加減な表記は普通しないと思いますが、仮にごちゃまぜで使っているなら答えもいい加減。どういう場面で出てきた文章ですか?
    • good
    • 0

いや, いくらなんでも「(10進数の) 0.1 を 10個加え」れば, その結果は誰がなんと言おうと必ず 1 です.


まあ, 普通は「本当に『(10進数の) 0.1』を 10個加えている」のか, というところが問題だったりして, そこが #1 につながるわけなんですが.
    • good
    • 0

う~んと2進数の話ですか?


それなら0.1を2個加えれば1になります。
16進数なら16個加えれば1になります。

n進数っていうのは1/nしますっていう意味ですから。
10進数の0.1は丁度10分割しているんです。
    • good
    • 0

http://www.google.com/search?q=2%E9%80%B2%E6%95% …
2進数で小数を表現する方法について調べてごらん

これ以上答えると丸投げに答えるだけになっちゃうから書いてあげられない。。。
    • good
    • 0

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