在Arduino中,浮点运算的结果是不够准确的,并且返回的值可以有一个小的近似误差。出现误差的原因时浮点仅用32为来存储一个巨大范围内的所有值。8位用于小数位置(指数),剩下的24位留给符号和数值,只够7位有效十进制数字。
虽然在Arduino中float和double是完全一样的精度,但是doubles在其他平台中却具有更高的精度。因此,当你从另一个平台中导入使用float和doubles的代码之前,需要检查是否为你的应用程序提供了足够的精度。
下面的代码显示了如何声明浮点型变量,表明了比较浮点数时可能会遇到的问题,并演示了如何克服这些问题。
/*
* 浮点例子
*本程序初始化浮点值至1.1
*它减少0.1的,直到该值为0
*/
float value = 1.1;
void setup()