「みんな教えて! 選手権!!」開催のお知らせ

二進数の四捨五入で
0.001を小数点第3桁を四捨五入し小数点第2桁を求める問題で答えが0.01になるのはなぜですか。
二進数の四捨五入がよくわからないので教えてください。
文章がわかりずらいと思いますがよろしくお願いします。

質問者からの補足コメント

A 回答 (5件)

No.4です。

最後の文章が何か変でしたね。

「従って、質問者さんがお望みの「四捨五入」の二進数版である「0捨1入」とは別物です。」

が正しい文章です。
    • good
    • 0
この回答へのお礼

ありがとうございます
とても、わかりやすかったです。

お礼日時:2017/07/19 11:28

No.3です。

「お礼」に書かれたことについて。

https://m.chiebukuro.yahoo.co.jp/detail/q1414619
>に記載してあるJIS丸めと、0捨1入とは別物ですか。

ここに記載している「JIS丸め」は「四捨五入」ではなく、「中間値=5」が必ず「切り上げ」になる統計的な偏りを避けるため、1つ上の桁(有効数字の最終桁)が偶数か奇数かによって交互に「四捨五入」(「5未満」を切り下げ、「5以上」を切り上げ)と「適切な呼び方がないが、「5以下」を切り下げ、「5超」を切り上げ」を混在させて行うという「人為的」な操作です。

従って、質問者さんがお望みの「四捨五入」の二進数版である「その逆」とは別物です。
    • good
    • 0

No.2です。

「お礼」に書かれたことについて。

>私は次の方が0ならば切り捨てて、1なら切り上げるんじゃないかと思います。

はい、そうです。
だから「有効数字、小数点以下2桁」の場合には、「小数点以下3桁目」が「1」なので
 0.101 → 0.11  ←0.10「1」なので
になります。

同様に
 0.10011 → 0.10  ←0.10「0」なので
になります。

>なので0.001は先ほどの考え方であれば0.00になるのではないですか?

ここでいう「先ほどの考え方」とは?
No.2の考え方でも同じですよ。
 0.001 → 有効数字を「小数点以下2桁」にまとめるなら 0.01
      有効数字を「小数点以下1桁」にまとめるなら 0.0

No.2では「1」を基準にしたので、「小数点以下1桁目」で判定し、「整数」に丸める例なので混乱したかな?
 100.1 → 101
 100.0111 → 100
という例で書いています。
    • good
    • 1
この回答へのお礼

https://m.chiebukuro.yahoo.co.jp/detail/q1414619 …
に記載してあるJIS丸めと、0捨1入とは別物ですか。

お礼日時:2017/07/19 10:34

「二進数の四捨五入」などという「一般的なコンセンサス」があるわけではなく、単に「10進法からの類推、アナロジー」でしょう。


「ちょうど中間値」を「切り上げ」側に含めるか、「切り捨て」側に含めるかの取り決めで、「中間値以上(中間値を含む)」と「中間値未満(中間値は含まない)」とに分ける、ということ。

10進数:「1」を基準にすれば
 0.5 以上なら切り上げ
 0.5 未満(=0.49999・・・ 以下)なら切り上げ

ということですから、

二進数:「1」を基準にすれば
  0.1 以上 → 四捨五入の「五」に相当するので切り上げ
  0.1 未満 つまり 0.011111111・・・以下 → 四捨五入の「四」に相当するので切り捨て
になるのだと思いますよ。
    • good
    • 1
この回答へのお礼

私は次の方が0ならば切り捨てて、1なら切り上げるんじゃないかと思います。なので0.001は先ほどの考え方であれば0.00になるのではないですか?

わかるかた教えてください

お礼日時:2017/07/19 07:56

多分質問者さんがやっている問題は


単純に0捨1入をすればいいだけだと思いますよ
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報