• ベストアンサー

MOD関数の値が・・・

MOD(○○,1.8)の関数を入力して返ってきた値が、 ○○のセルの値が「1.8」「3.6」等の場合は「0」なのに対して、 「5.4「18」等の場合は「-0」になってしまいます。 なぜでしょうか??教えてください!!

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

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

1.8は、十進法では正確な値が表示できますが、内部で使用している二進数では8÷10が割り切れず、無限小数になるため、正確な値を記憶できません。そのため、0に近い、わずかにマイナスの誤差が残り、そのために-0と表示されます。表示桁数を増やすと、-○○.○E-16などと表示されます。E-16とは、×(10の-16乗)という意味です。 ためしに、18から1.8を10回引いてみてください。0にならずに誤差が残ると思います。 ちなみに、内部で正確に表現できる小数は、2の-N乗にあたるものです。 0.5、0.25、0.125、0.0625、・・・やその倍数です。

chikachu
質問者

お礼

ためになる回答、ありがとうございます!! なんだか難しくてちょっと理解できませんが・・・(苦笑 教えていただいたことを念頭において、作業を進めます。 また何かありましたらよろしくお願いします!

関連するQ&A