gpt4 book ai didi

java - 在 [-2, 2] 之间生成随机 X.XXX 数字

转载 作者:行者123 更新时间:2023-12-01 11:47:39 27 4
gpt4 key购买 nike

x = rd.nextInt((4000) - 2000) / 1000.0;

这是在 [0, 2] 到十进制小数之间生成数字,这是我想要的,我只需要负数,所以生成的数字范围在 [-2, 2] 之间。

最佳答案

您面临的问题是整数运算,它会截断结果的小数部分。使用 rd.nextDouble()相反,算术结果是 double ,保留小数部分。

但是,要四舍五入到 1/100,您可以使用整数算术对您有利。

你的问题有十位小数的文字,所以这是解决方案:

x = (int)(((rd.nextDouble() * 4) - 2) * 100) / 100d;

但是你的标题提到了 X.XXX ,所以这是解决方案:
x = (int)(((rd.nextDouble() * 4) - 2) * 1000) / 1000d;

要解开这里发生的事情:
  • 在 0.000000 和 1.000000 之间生成随机 double
  • 乘以范围的比例,所以我们得到一个介于 0.000000 和 4.000000 之间的数字
  • 减去 2,所以我们得到一个介于 -2.000000 和 2.000000 之间的数
  • 乘以 1000,所以我们得到一个介于 -2000.000000 和 2000.000000 之间的数
  • 强制转换为 int 以截断分数,因此我们得到一个介于 -2000 和 2000 之间的 int
  • 除以 1000d(这是一个 double 数),所以我们得到了 -2.000 和 2.000 之间的 double 数
  • 关于java - 在 [-2, 2] 之间生成随机 X.XXX 数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61449884/

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