为了账号安全,请及时绑定邮箱和手机立即绑定

为什么:int x = (int)(Math.random()*10);去掉两个括号变成:int x = (int)Math.random()*10;后,编译没错,但结果全是0呢?

到底为什么啊?

正在回答

2 回答

前面强制转换的是  Math.random*10    Math.random 出来的是0到1范围内的随机数  后面强转Math.random  转的是零点几,转出来是0,然后再乘以10,当然是0了。

3 回复 有任何疑惑可以回复我~
#1

cmowchenjin 提问者

非常感谢!
2015-01-05 回复 有任何疑惑可以回复我~

强制类型转换只对紧随其后的变量有效。

Math.random()产生的0到1的浮点数,强转成int可不就是0吗!

2 回复 有任何疑惑可以回复我~
#1

cmowchenjin 提问者

thank you,理解了!
2015-01-05 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么:int x = (int)(Math.random()*10);去掉两个括号变成:int x = (int)Math.random()*10;后,编译没错,但结果全是0呢?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号