草庐IT

greatestLessThanOne

全部标签

java - 0.99999999999相乘时可以四舍五入到1.0吗?

当一个非常接近1的float乘以int>0时,它是否可以被解释为1。也就是说,如果Math.random()返回其可能的最高结果(比1.0低1步),将(int)(Math.random()*8)是8还是7?举个实际的例子,这个经常使用的构造能否给出索引越界错误:someArray[(int)(Math.random()*someArray.length)];我对Java和ActionScript3的答案特别感兴趣,但我想它们都使用相同的浮点运算规则,并且任何平台的答案都会很有用。更新:虽然我已经接受了答案,但我仍然希望确认这在ActionScript3中也不会出错,因为一位同事报告说他

java - 0.99999999999相乘时可以四舍五入到1.0吗?

当一个非常接近1的float乘以int>0时,它是否可以被解释为1。也就是说,如果Math.random()返回其可能的最高结果(比1.0低1步),将(int)(Math.random()*8)是8还是7?举个实际的例子,这个经常使用的构造能否给出索引越界错误:someArray[(int)(Math.random()*someArray.length)];我对Java和ActionScript3的答案特别感兴趣,但我想它们都使用相同的浮点运算规则,并且任何平台的答案都会很有用。更新:虽然我已经接受了答案,但我仍然希望确认这在ActionScript3中也不会出错,因为一位同事报告说他