Math.random()方法返回的是一个正的double类型的值,范围是>=0.0且<1.0,注意不等于1.0哦,
所以Math.random() * 101返回的范围是>=0.0且<101
教楼主一个方法,希望能帮助到你:
Math.random() * 101这句话的话,我想你应该是看的懂,java中java.lang里面的类都是默认导入的,所以Math这个类就是java.lang包里面的,你查一下api就可以知道Math.random() 方法的作用了
至于前面的int(),你可以先把删除掉,编译器提示的是Type mismatch: cannot convert from double to int,意思是不能将double类型的值转换成int类型的,
在doc命令行下的提示是:
Score.java:4: [b]可能损失精度[/b]
找到: double
需要: int
score = (Math.random() * 101);
意思跟编译器提示的差不多,在java中出现损失精度这种错误,基本就是=(等号)两边的基本数据类型不一样的原因,并且是高精度向低精度转换的时候(即等号的右边的数据类型的精度较高,就像你的例子程序一样),解决之道就是需要进行显示的转换(int) (Math.random() * 101),而当等号右边是低精度时,编译器则会做隐式转换处理,即double score; score = (Math.random() * 101);这样写,编译时不会报错 |