android.opengl.Matrix.rotateM的结果有什么问题?
问题描述:
我的代码:android.opengl.Matrix.rotateM的结果有什么问题?
float[] rotatePlus90Mtx = identityMatrix.clone();
Matrix.setRotateM(rotatePlus90Mtx, 0, 90, 0, 0, 1);
Log.e(TAG, "RotatePlus90 Matrix: ");
dumpMatrix(rotatePlus90Mtx);
结果:
-4.371139E-8 1.0 0.0 0.0
-1.0 -4.371139E-8 0.0 0.0
0.0 0.0 1.0 0.0
0.0 0.0 0.0 1.0
为什么有-4.371139E- 8?应该是0正确吗?
答
它几乎是零;浮点数不是精确...
值得一读:
- “什么每台计算机科学家应该知道关于浮点运算 ” http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html