将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