gpt4 book ai didi

c - -1.0/1.0 操作返回 0?

转载 作者:行者123 更新时间:2023-12-04 12:14:29 25 4
gpt4 key购买 nike

我正在编写一个程序,通过 Gauss-Jordan 方法求解矩阵。除 -1.0/1.0 外,一切正常。打印矩阵时,当它应该仍然是 -1.0 时,它会打印出 0.0。谁能解释为什么会这样?在下面的例子中,matrix[k][s] 是 -1.0,除数是 1.0 double 值。

for(s = 0; s < (n+1); s++){ //Augmented matrix, while s < number of columns

if(divisor == 0.0){ //Not dividing by 0.0
continue;
}

matrix[k][s] = matrix[k][s] / divisor;

if((matrix[k][s] < TOLERANCE) || (matrix[k][s] < -TOLERANCE)){ //To avoid -0.0 values, TOLERANCE == 1e6
matrix[k][s] = 0.0;
}

最佳答案

我猜你想要这个条件:

(matrix[k][s] < TOLERANCE) || (matrix[k][s] < -TOLERANCE)

是这样的:

(matrix[k][s] < TOLERANCE) && (matrix[k][s] > -TOLERANCE)

换句话说,当fabs(matrix[k][s]) < TOLERANCE

(注意解释其他答案中的评论 - 我最初使用 abs ,但 fabs 是这里的正确功能。)

关于c - -1.0/1.0 操作返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6602574/

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