Java随机双精度数组从-50到50

crl*_*lav -1 java random

我需要用 -50 到 50 之间的随机数填充数组,并且需要使用 Math.random()。这是我当前的代码:

double[] randomNums = new double[5];

for (int i = 0; i < randomNums.length; i++) {
    randomNums[i] = 100 * Math.random() - 50;
}
for (double i: randomNums) {
    System.out.println(i + ',');
}
Run Code Online (Sandbox Code Playgroud)

输出:

double[] randomNums = new double[5];

for (int i = 0; i < randomNums.length; i++) {
    randomNums[i] = 100 * Math.random() - 50;
}
for (double i: randomNums) {
    System.out.println(i + ',');
}
Run Code Online (Sandbox Code Playgroud)

为什么这个数字会超过 50?

Eri*_*vey 8

您正在将 char 的值添加,到每个 double 中,该值的值为 44。您可以使用以下方法进行测试:

System.out.println(0 + ',');
Run Code Online (Sandbox Code Playgroud)

输出:44

要解决此问题,您只需删除+ ','

  • 或者使用`","`代替`','`。 (5认同)
  • 或者使用 `+ ","` 连接一个 "," 字符串而不是添加 char 值 (2认同)