标签: c++ floating-point
我正在进行一些矩阵运算,矩阵元素通过以下方式从某些变量中获取值:
elem[1] = -x
但是当x = 0在矩阵中设置-0时,这是不合需要的。有什么明确的方法可以防止这种情况发生?
x = 0
-0
答案 0 :(得分:4)
您可以执行以下操作:
elem[i] = -x + 0.0;
我测试了以下代码:
float a = -0.0; printf("%f %f\n", a, a + 0.0);
产生以下输出:
-0.000000 0.000000