重複の可能性:
10 進数を 2 進数で正確に表現できないのはなぜですか?
私は、C++ で数学を使用するための非常に単純なアルゴリズムを開発しています。
また、「step」という名前の浮動小数点変数があります。while ループを終了するたびに、step を 10 で割る必要があります。
だから私のコードはこのようなものです、
float step = 1;
while ( ... ){
//the codes
step /= 10;
}
私のばかげた単純な論理では、それで終わりです。step は、1 から 0.1、0.1 から 0.01 の 10 で除算されます。
しかし、そうではなく、代わりに 0.100000000001 のようなものが表示されます。そして、私は「What The Hell」のようでした
誰かがこれで私を助けてくれませんか。私が完全に理解していないのは、おそらくデータ型自体に関するものです。したがって、誰かがさらに説明できれば幸いです。