[921] 少数の引算の結果
のぶ [2025/10/31 23:28:58]
いつも便利に使っています。ありがとうございます。
さて、セル内計算式が、
=8.0-8
=8.1-8
=8.2-8
=8.3-8
=8.4-8
=8.5-8
=8.6-8
=8.7-8
=8.8-8
=8.9-8
の場合、それぞれ
0
0.0999999999999996
0.199999999999999
0.300000000000001
0.4
0.5
0.6
0.699999999999999
0.800000000000001
0.9
という計算結果になりました。
これはうちのポンコツマシンだけでしょうか
Re: [921] 少数の引算の結果
あすかぜ [2025/11/01 18:28:50]
ご指摘ありがとうございます。
Cassava Editor のマクロでは二進法で四則演算を計算しているので、十進法の小数を正しく計算することができません。
当面は計算結果を四捨五入することで対処してください。
https://www.asukaze.net/soft/cassava/macro/asukaze/Math.cms
上のリンクを右クリックし、「名前を付けてリンクを保存」でダウンロードして、
Cassava Editor の「Macro」フォルダ内の「lib」フォルダに置いてください。
この状態で「=8.1-8」のかわりに「=Math.round(8.1-8, 1)」とすれば、結果が「0.1」になると思います。
(「=Math.round(値, 1)」で値を小数点以下 1 桁で四捨五入します)
小数の計算の改善についても今後考えてみたいと思います。
Re: [921] 少数の引算の結果
のぶ [2025/11/02 23:35:47]
なるほど、2進数で計算するとこうなるんですね。
=Math.roundでやってみます。
お忙しい中、回答してしただきありがとうございました。