微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/android/311379.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐