バグではないよ。1.2-1.1<0.1@エクセル

まずは、これをご覧ください!

衝撃的事実!!

f:id:rasemo:20191012170412p:plain

???

1.2-1.1って0.1じゃないんですか?

エクセルさん!!

 

やむを得ないんです。

2進数でPCが計算しているから。

小数点以下は、2進数は無限ループになって、0と1が続くんです。

そのため、ある一定の桁数(54)で、切捨て、切上げを行っているんです。

結果、

◆ 1.2⇒1.2よりもわずかに小さな数字

◆ 1.1⇒1.1よりもわずかに大きな数字

となって、

その差は、0.1よりも小さいことになります。

下のように整数だと問題ありません。

f:id:rasemo:20191012171144p:plain

PCの2進数は、整数には強いからです。

なので、プログラムでの条件式で比較をする時は、

一旦10倍なり、100倍なりして、整数で比較して、

10分の1、100分の1で戻すのがコツです~~(^▽^)/