这是一个非常简单的问题,但却很重要,因为它极大地影响了我的整个项目。
假设我有以下代码片段:
unsigned int x = 0xffffffff;
float f = (float)((double)x * (double)2.328306436538696e-010); // x/2^32
我希望它f
类似于 0.99999,但取而代之的是四舍五入到 1,因为它是最接近的float
近似值。这不好,因为我需要float
[0,1) 区间的值,而不是 [0,1]。我确信这很简单,但我会很感激一些帮助。