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

来源:3-8 使用 Math 类操作数据

cmowchenjin

2015-01-05 00:38

到底为什么啊?

写回答 关注

2回答

  • 木刻王
    2015-01-05 08:31:05
    已采纳

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

    cmowch...

    非常感谢!

    2015-01-05 14:53:26

    共 1 条回复 >

  • 仗剑闯江湖
    2015-01-05 08:32:37

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

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

    cmowch...

    thank you,理解了!

    2015-01-05 14:54:13

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题