我在计算归一化2D点的投影时,偶然发现与未对它们进行归一化投影时相比,它们更准确。我的代码是用c++编写的,我使用NDK编译缺少FPU(浮点单元)的android手机。

当我第一次将值标准化为0到1之间时,为什么在使用C++进行计算时会获得准确性?

如果使用0到1之间的变量,则在C++中获得算术精度通常是正确的吗?或者它与为ARM设备进行编译的情况有关?

最佳答案

您对精度有误解。精度基本上是可用于表示数字尾数的位数。

如果将小数位保持在0到1之间,您可能会发现小数点后似乎还有更多位数,但这不是精度,它不会因小数位或正负号而改变。

例如,无论您的数字是0.5还是1e38,单精度都具有23位精度。 double 具有52位精度。

有关IEEE754位级表示的更多详细信息,请参见this answer

09-04 16:08
查看更多