Arduino 浮点数 - 6 个十进制数字



我想知道是否有人对十进制数有一个很好的解决方案。

我使用 Arduino Mega,并尝试转换小数点后有 6 个数字的浮点数。当我尝试时,我得到 5 个数字正确,但没有得到数字 6。6 数字要么不计算在内,要么显示为 0。我尝试了很多不同的东西,但它最终总是显示 5 个数字正确,但不是 6。

有人对此有解决方案吗?

感谢所有帮助

通常,可以使用浮点数的缩放整数形式来保持准确性。

具体来说,如果这些是来自GPS设备的纬度/纬度值,您可能会对我的NeoGPS感兴趣。 在内部,它使用 32 位整数来维护 10 位有效数字。 如您所发现的,大多数库仅提供 6 或 7 位数字,因为它们使用 float .

示例 NMEAloc.ino 演示如何打印 32 位整数,就好像它们是浮点值一样。 它只是在正确的位置打印小数点。

NeoGPS 距离和方位角计算也小心翼翼地以保持该精度的方式执行数学运算。 结果在小距离/方位下非常好,这与在朴素计算中使用float类型的所有其他库不同。

4 字节浮点数可以容纳 6 个有效数字。8 字节双精度可以容纳 15。

您需要使用双精度才能获得所需的精度。

有关 4 字节浮点数的信息

最新更新