双精度数字通常在最后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
如何解决这个问题?