为什么“int ranNum=(int)(Math.random()*10);”的“(Math.random()*10);”要加括号?

来源:百度知道 编辑:UC知道 时间:2024/07/06 17:51:12
为什么“int ranNum=(int)(Math.random()*10);”的“(Math.random()*10);”要加括号?Math.random()*10不加括号得出的结果为什么总是0?

Math.random()得到的是0-1之间的随机double值,
不加括号的话程序这样运行:先Math.random()产生一个0-1的随机值,然后强转成int值,而强转成int的话,不是四舍五入,而是直接截取这个double值的整数部分,例如(int)6.8=6而不是7! 因为随机值是不会大于等于1的 ,所以强转以后一定是0;

括起来你应该理解的~~

不加括号的话,先取整再乘10,随机数小于1,取整后是0,乘10还是0