不明白Math.random()在java中是如何工作的

时间:2016-05-29 07:29:53

标签: java random

为什么以下代码仅打印25?

.nav-down

如果while(true) { int pos = (int) (Math.random() * (26 )); if (pos > 24) System.out.println(pos); } 返回从Math.random()0的数字,那么上面的代码也不应该打印1吗?

1 个答案:

答案 0 :(得分:1)

Math.random()返回大于或等于0.0且小于 1.0的正双。

(int)会截断双打,也就是说 - 它会删除小数点后的所有数字,只留下整数部分 - 它不会对数字进行舍入!

因为Math.random()永远不会是1,所以随机数乘以26将始终是lass然后是26.所以(int)将截断25.xyz,它将删除小数点后的所有数字只留下25个。

这是你永远不会得到26的方式。