乘法时,0.9999999999999可以舍入到1.0吗?
2022-09-01 06:55:21
当将非常接近 1 的浮点数与 int > 0 相乘时,是否可以将其解释为 1。
也就是说,如果返回其最高可能结果(即比 1.0 低 1 步),则将Math.random()
(int)(Math.random() * 8)
是8岁还是7岁?
举一个实际的例子,这个经常使用的构造是否可以给出一个索引越界错误:
someArray[(int)(Math.random() * someArray.length)];
我对Java和ActionScript 3的答案特别感兴趣,但我认为它们都使用相同的浮点算术规则,任何平台的答案都会很有用。
更新:虽然我已经接受了一个答案,但我仍然希望确认这在ActionScript 3中也不会出错,因为一位同事报告说他曾经看到过它出错,这在一定程度上促使我问这个问题。