これは非常に単純な質問ですが、プロジェクト全体に多大な影響を与える重要な質問です。
次のコード スニペットがあるとします。
unsigned int x = 0xffffffff;
float f = (float)((double)x * (double)2.328306436538696e-010); // x/2^32
0.99999 のようなものになると思いf
ますが、最も近い近似値であるため、代わりに 1 に丸められfloat
ます。float
[0,1] ではなく [0,1) 間隔の値が必要なので、これは良くありません。簡単なことだとは思いますが、少しでもお役に立てれば幸いです。