gpt4 book ai didi

java - 将 int 分数转换为 double

转载 作者:太空宇宙 更新时间:2023-11-04 13:27:39 24 4
gpt4 key购买 nike

我正在尝试获取一个 double (由两个 int 的一小部分产生)作为我的以下函数的返回值。

public static double getThresHold(int n) {

int i, j;
int openSites = 0;
Percolation percolation = new Percolation(n);
do {
i = StdRandom.uniform(n) + 1;
j = StdRandom.uniform(n) + 1;
if ( !percolation.isOpen(i, j) ) {
percolation.open(i, j);
openSites++;
}
} while (!percolation.percolates());

double threshold = openSites * 1.0 / n*n;
return threshold;
}

但结果总是错误的,我得到的值例如:

200.0
240.0
260.0

预期结果应在 0.60.5 之间

我的代码有什么问题!

谢谢。

最佳答案

openSites * 1.0/n*n 是从左到右计算的,因此它相当于 ((openSites * 1.0)/n)*n,它等于 openSites

您应该使用括号来强制执行运算的顺序,并且可以通过将 openSites 强制转换为 double 来强制浮点除法,而不是乘以 1.0:

double threshold = (double)openSites / (n*n);

这也可以,但我发现它不太优雅:

double threshold = openSites * 1.0 / (n*n);

关于java - 将 int 分数转换为 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32499220/

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