Java math.random查询,四舍五入(概念理解)

标签 java class math rounding

我正在尝试理解 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/

相关文章:

java - 如何使用 Spring HibernateOperations 进行带有隐式事务的简单操作?

java - admob 测试广告 ID 正常工作,但真实 ID 广告在 Android Studio 中不起作用

java - 如何优化这个SQL删除

c# - 如何从类中返回错误

php - 在里面插入sql数据库后表类不工作

c++ - 是 VAR |= 1 << 2;可逆的?

java - MapReduce 扩展对象作为 reducer 的 Key

java - 如何强制实现类从一个或另一个子类继承?

c - math.h ceil 在 C 中没有按预期工作

JavaScript - 如何在显示为正方形/矩阵的元素线性数组中按键查找元素的 x,y 位置?