问答详情
源自:3-8 使用 Math 类操作数据

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

到底为什么啊?

提问者:cmowchenjin 2015-01-05 00:38

个回答

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

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

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

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

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