为什么“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
为什么 set_date (int _year,int _month,int _day)中间要加一横
int *p(int int)与int (*p)(int int)区别?
int i=0;
已知int a=1;int b;b=(++a)+(++a)+(++a);为什么b=10?
int isP(int m)
int f(int k,int m=0,double d=0.0); 则f(3,5,6.7)是它的合法调用,为什么?
x,y 都是int, x++=y++ 为什么错?
unsigned int a=2;int b = -3;
void a(int a,int b=0)的含义?
java问题 int a[ ]=new int[5]是什么意思