【发布时间】:2023-03-14 10:47:01
【问题描述】:
这段代码给出了我想要的结果
double a=Math.random()*100;
int b=(int)a;
System.out.println(b);
但是当我以这种方式做同样的事情时,它总是给零
int a=(int)Math.random()*100;
System.out.println(a);
据我所知,类型转换会将较大的数据类型存储为较小的。但在后面的代码中,我每次运行程序时都会得到零。
【问题讨论】:
-
(int)(Math.random()*100)会按照你的意愿行事...... -
了解 random 的返回值将帮助您解决这个问题。
-
类型转换在乘法之前,math.random 产生 0-1 之间的数字,因此将其四舍五入为
0,因此乘法得到0 -
(int)Math.random()*100; === ((int)Math.random())*100; -
为什么人们评论而不是写一个正确的答案?对于未来的访问者,评论不可能被标记为“正确”。
标签: java type-conversion