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

为什么: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下载
官方微信