我需要以原子方式增加浮點值。我通過調用Float.floatToIntBits來獲得它的int值。如果我只是做一個i ++並將其轉換回浮動狀態,它不會給我預期的價值。那麼我將如何去做呢?Java:通過Float.floatToIntBits增量?
(我試圖通過AtomicInteger創建一個AtomicFloat,因此這個問題)。
編輯:這裏是我所做的:
Float f = 1.25f;
int i = Float.floatToIntBits(f);
i++;
f = Float.intBitsToFloat(i);
我想2.25,但得到1.2500001代替。
預計什麼?實際結果是什麼?給一些更多的描述? – 2012-03-29 08:29:33
如果你想舉一個你期望的和發生的事情的例子,這將有所幫助。這是完全可能的,這個問題符合你的期望。 – 2012-03-29 08:29:54
「增加浮動」是什麼意思?給它添加1,或者獲得下一個更大的浮點值(添加一個ULP)? – 2012-03-29 08:44:50