android – 将C中的变量归一化在(0,1)之间,以获得算术的准确性

我正在计算标准化2D点的投影,并且偶然地我注意到它们比投影点时更准确而没有标准化它们.我的代码在c中,我使用NDK编译一个没有FPU(浮点单元)的 Android手机.

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

如果您使用介于0和1之间的变量或者是否与编译ARM设备的情况相关,那么在C中通常是否可以获得算术精度?

解决方法

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

您可能会发现,如果您将比例保持在0和1之间,您似乎在小数点后面有更多数字,但这不是精确度,根据比例或符号,它根本不会改变.

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

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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...