关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。
三年前关门了。
改进这个问题
在“intx=(math.random()*a)”行下面的代码中,我得到一个错误,在“*a)”处显示“不兼容类型:可能有损从double到int的转换”
`
import java.util.Scanner;
public class problem4 {
public static void rollDice() {
Scanner reader = new Scanner(System.in);
System.out.println("How many random numbers should be generated?");
int n = reader.nextInt();
Scanner reader1 = new Scanner(System.in);
System.out.println("What is the number of values for each random draw?");
int a = reader.nextInt();
for (int i = 0; i <= n; i++) {
int x = (Math.random()* a);
System.out.println("Random number "+i+" is "+x+".");
}}}`
我在bluej中使用java。
2条答案
按热度按时间g2ieeal71#
改用这个
https://docs.oracle.com/javase/7/docs/api/java/util/random.html#nextint()
或者
zynd9foi2#
Math.random
返回一个double
. 然后你试着把它乘以a
把它放进一个int
.一
int
总是一个整数(没有小数点)。所以它告诉你,你在做那个操作(把它放回一个int
).你可以通过
x
一double
. 或者如果你真的想要整数,你可以显式地强制转换x
到一个int
通过这样做:int x = (int) (Math.random() * a)