Arduino浮点数 - 6个十进制数

时间:2017-04-14 21:49:17

标签: arduino

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

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

有人有解决方案吗?

Appriciate all help

2 个答案:

答案 0 :(得分:0)

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

你需要使用双打来获得你想要的精度。

info on 4 byte floats

答案 1 :(得分:0)

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

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

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

NeoGPS距离和方位计算也要小心,以保持精度的方式执行数学运算。结果非常适合小距离/方位,不同于在幼稚计算中使用float类型的所有其他库。