この質問があります:
浮動小数点数で等値テストを使用するのは安全ではないと主張します。これは、算術演算によって丸め誤差が発生し、等しいはずの 2 つの数値が等しくないことを意味するためです。
このプログラムでは、数値 N を選択し、1 から 1000 までの整数 x のどれに対して (x+1)/N = (x/N) + (1/N) が成り立たないかを示すプログラムを作成する必要があります。
#include <stdio.h>
int main () {
int x;
float N = 50;
for (x=0; x<1001; x++) {
if ((x+1)/N != (x/N) + (1/N))
{
printf("%i\n",x);
}
}
}
これは正しいです?
ありがとう。