Code Fix

上級0.1 + 0.2 == 0.3 が偽になる理由 › パターン2

0.1 + 0.2 == 0.3 が偽になる理由

doubleやfloatは2進数で値を表現するため、0.1や0.2のような小数を正確には表現できません。

 1  #include <stdio.h>
 2  #include <math.h>
 3  
 4  int main(void) {
 5      double b = 1.1 - 1.0;
 6      if (____________________) {
                      ^
 7          printf("equal\n");
 8      } else {
 9          printf("not equal\n");
10      }
11      return 0;
12  }
出力: not equal期待: equal

空欄を埋めてコンパイル・実行を通す

広告
広告スロット(未設定)

0.1 + 0.2 == 0.3 が偽になる理由

==でぴったり比較すると、ほぼ確実に一致しません。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)