Arduino Atmega2560双不精确

时间:2017-01-24 10:45:37

标签: arduino double compiler-optimization floating-accuracy atmega

双精度数字通常在最后3位数字(超过11位小数 - 尾数)时不准确

但是在Arduino Mega / Atmega2560中,圆形错误很快就会出现在小数点后7位。即使有常数。

#include <math.h>

Serial.println(M_PI,14);
//3.14159274101257

double s_pi = 3.14159265358979d; // or trunc like 3.14159263 ,  3.14159264... same result
Serial.println(s_pi,14);
//3.14159274101257

感觉编译器会转换float中的所有内容而不是double

如何解决这个问题?

0 个答案:

没有答案
相关问题