相关疑难解决方法(0)

当乘以时,可以将0.99999999999四舍五入为1.0吗?

当将非常接近1的浮点数乘以int> 0时,它是否可以解释为1.

也就是说,如果Math.random()返回其最高可能结果(比1.0低1步),将会

(int)(Math.random() * 8)
Run Code Online (Sandbox Code Playgroud)

是8还是7?

对于一个实际的例子,这个经常使用的构造是否可以提供索引超出范围的错误:

someArray[(int)(Math.random() * someArray.length)];
Run Code Online (Sandbox Code Playgroud)

我对Java和ActionScript 3的答案特别感兴趣,但我想它们都使用相同的浮点运算规则,任何平台的答案都会很有用.

更新:虽然我已经接受了答案,但我仍然感谢确认这在ActionScript 3中也不会出错,因为一位同事报告说他看到它出错了,这部分促使我提出这个问题.

java math floating-point actionscript-3

35
推荐指数
1
解决办法
1785
查看次数

将[0,1]区间扩展为[a,b]的正确方法是什么?

许多随机数生成器返回0到1之间的浮点数.

ab之间获得整数的最佳和正确方法是什么?

language-agnostic random

3
推荐指数
1
解决办法
1289
查看次数