我需要原子地增加一个浮点数的值。我通过调用Float.floatToIntBits获取其int值。如果我只是做一个i++,然后将其转换回float,它不会给我预期的值。那么我该怎么做呢?
(我正在尝试通过AtomicInteger创建AtomicFloat,因此有这个问题)。
编辑:这是我所做的:
Float f = 1.25f;
int i = Float.floatToIntBits(f);
i++;
f = Float.intBitsToFloat(i);
我希望得到2.25,但实际上得到了1.2500001。
f+1
的值等于f
,因此加一并不总是增加一个值。 - Christian Semrau