par*_*rth 2 c++ floating-point
我正在做一些矩阵运算,其中矩阵元素通过以下方式从某些变量获取值:
elem[1] = -x
Run Code Online (Sandbox Code Playgroud)
但当它在矩阵中x = 0设置时,这是不希望的。-0有什么明确的方法可以防止这种情况发生吗?
您可以执行以下操作:
elem[i] = -x + 0.0;
Run Code Online (Sandbox Code Playgroud)
我测试了以下代码:
float a = -0.0;
printf("%f %f\n", a, a + 0.0);
Run Code Online (Sandbox Code Playgroud)
产生以下输出:
-0.000000 0.000000
Run Code Online (Sandbox Code Playgroud)