Я пишу программу, которая решает матрицы методом Гаусса-Джордана. Все работает кроме -1.0 / 1.0. При печати матрицы она печатает 0.0, когда оно должно быть -1.0. Кто-нибудь может объяснить, почему это происходит? В приведенном ниже случае матрица [k] [s] равна -1,0, а делитель - двойное значение 1,0.
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;
}