將int非常接近1的浮點數乘以int> 0時,它是否可以解釋爲1.可以將0.999乘以時舍入爲1嗎?
也就是說,如果Math.random()返回其最高可能結果(即1步驟低於1.0),將
(int)(Math.random() * 8)
是8或7?
對於一個實際的例子,可以在此經常使用的結構給出一個索引越界的錯誤:
someArray[(int)(Math.random() * someArray.length)];
我在爲Java和ActionScript 3的答案特別感興趣,但我想他們都使用浮點算法的相同規則以及任何平臺的答案都是有用的。
更新:雖然我已經接受了一個答案,但我仍然希望確認這在ActionScript 3中不會出錯,因爲一個同事報告他看到它出錯一次是什麼部分促使我問這個問題題。
您已接受的答案嗎? – Paulpro 2012-04-27 20:58:45
恩,「雖然我已經接受了答案」什麼? – 2012-04-27 20:58:56
你是什麼意思? – 2012-04-27 21:01:03