我正在尝试理解 math.random 的逻辑,或者更具体地说是正在发生的事情和/或原因。
我基本上理解下面的代码,例如,由于 java 是一种基于 0 的语言,我们从 0 开始进行索引等。
下面的代码打印出一个介于 0 和 10 之间的值(含 0 和 10)。 据了解,11 是排他性的。
int result = (int) (Math.random () * 11);
我的问题是为什么例如如果我们要得到 0.99 * 10 那么 = 10.99 为什么数字不四舍五入到 11?
这是简单的设计,java 总是向下取整为 0 吗?还是我错过了一个概念?
感谢您的帮助。
最佳答案
正如我在评论中提到的:
转换为 int
将导致 floor
。这意味着您的数字将始终四舍五入为 0,因此 10.99 在转换为 int
后将变为 10。
可以看看这个reference还有
关于Java math.random查询,四舍五入(概念理解),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63028543/