gpt4 book ai didi

java - 使用 Math.random 创建一个精确到十分位的数字

转载 作者:行者123 更新时间:2023-12-01 10:09:03 24 4
gpt4 key购买 nike

我需要用随机数填充一个数组,但这些数字只能到十分位。有没有办法用 Math.random 做到这一点?这是我的 Math.random:

double[] array = new double[size];
for (int i = 0; i < array.length; i++) {
double num = ((Math.random() * 10000.0) + 0.0);
array[i] = num;
}
return array;

最佳答案

如果你想要带有一位小数的随机数,你可以使用

int size = 20;
double[] array = new double[size];
Random rand = new Random();
for (int i = 0; i < size; i++)
array[i] = rand.nextInt(10_000 * 10) / 10.0;
System.out.println(Arrays.toString(array));

打印

[8773.3、6305.2、2758.4、7872.7、4648.9、3565.2、9546.4、7533.1、2369.7、3218.0、9960.2、7418.0、8149.3、8813.4、638.5、 8178.9、2831.2、4758.7、8238.2、6409.1]

注意:虽然 double 有表示错误,但 Double.toString() 被写入以显示具有该表示形式的最短小数,因此您不会看到任何错误(也不会看到任何错误)一个小数点后至少 100 万亿的数字)

注意2:这就是为什么您必须执行(x * N)/(double) N,因为它可以避免累积错误。例如如果你这样做

double y = x * 0.1

double y = x / 10.0;

这并不总是产生相同的结果。这是因为 0.1 无法准确表示,并且当您在运算中使用它时,会加剧此错误。如果您使用10.0,它可以无错误地表示,因此结果中的错误将足够小,当您调用Double.toString()时,您将得到预期的结果结果。

关于java - 使用 Math.random 创建一个精确到十分位的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36265480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com