java - 为什么 (int) Math.random()*10 在 Java 中不产生 10?

标签 java

为什么下面的结果是 0 - 9 而不是 10?

我的理解是 Math.random() 创建 0 到 1.0 以下的数字。

所以它可以产生 0.99987,通过 *10 变成 10,不是吗?

int targetNumber = (int) (Math.random()* 10);

最佳答案

在 Java 中将 double 转换为 int 会进行整数截断。这意味着,如果您的随机数是 0.99987,则乘以 10 得到 9.9987,整数截断得到 9。

关于java - 为什么 (int) Math.random()*10 在 Java 中不产生 10?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3091998/

相关文章:

java - 将 xml 转换为 java 对象有困难

java - 与对象序列化期间计算的 SUID 混淆

java - 在循环内保存到数据库

java - spring mvc 3 与 hibernate (和 hibernate.hbm2ddl.auto)

java - 如何在 Java 9 中使用拼图

java - 如何使 JOptionPane 在尝试关闭 JFrame 时出现

java - 使用 RxJava 和改造的格式错误的 JSON

java - 这个在 Spring 中处理 POST 请求的 REST 方法到底是如何工作的?

java - 字符串数组中的通配符替换

java - 如何获取数组元素的 PropertyDescriptor?