gpt4 book ai didi

java - 当不断添加随机 double 直到达到特定距离时,无法使 while() 循环工作

转载 作者:行者123 更新时间:2023-12-01 08:00:20 27 4
gpt4 key购买 nike

我使用 while() 循环不断地将随机 double 加到 x 上,直到 x 达到距原点的特定距离。它停止运行,没有任何输出。如果我将 while() 循环更改为while (Math.abs(x) == distance),它给了我输出,尽管不是我想要的正确输出。这些代码有什么问题?感谢您的任何意见。

while (Math.abs(x) != distance)
{
randValue = (-1.0) + 2.0 * rand.nextDouble();
x = x + randValue;
move = move +1;
}
System.out.println("After " + move + " moves X now at " + x);

最佳答案

您正在检查该值是否恰好所需的距离。您需要检查是否达到或超出了所需的距离:

while (Math.abs(x) < distance)

一般来说,对浮点值使用 ==!= 是一个坏主意 - 在执行了一些操作之后,您经常会发现值与预期值接近,但不完全正确。如果您想检查一个值是否“几乎等于”另一个值,您需要定义一个特定的容差并进行检查。不过,我认为您的情况不需要这样做。

关于java - 当不断添加随机 double 直到达到特定距离时,无法使 while() 循环工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25812927/

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