首页 > 解决方案 > Java math.random 查询、取整(概念理解)

问题描述

我试图理解 math.random 的逻辑或更具体地说是发生了什么以及为什么。

我基本上理解下面的代码,例如由于 java 是一种基于 0 的语言,我们从 0 开始进行索引等。

下面的代码打印出一个介于 0 和 10 之间的值。11 是排他性的。

int result = (int) (Math.random () * 11); 

我的问题是为什么例如如果我们得到 0.99 * 10 那么 = 10.99 为什么这个数字不四舍五入到 11?

这是否只是设计使 java 总是向下舍入为 0?还是我错过了一个概念?

谢谢你的帮助。

标签: javaclassmathrounding

解决方案


正如我在评论中提到的:转换为 anint将导致floor. 这意味着您的数字将始终四舍五入为 0,因此 10.99 在转换为 后将变为 10 int

你也可以看看这个参考


推荐阅读