#define FloatPrecision(X,n) ((float)((int)(((X)+(((X)>=0)?5*pow(10,-(n+1)):-5*pow(10,-(n+1))))*pow(10,(n)))/pow(10,(n))))
本文介绍了一种使用宏定义来精确控制浮点数运算精度的方法。通过将浮点数转换为整数进行运算,再转回浮点数,可以有效地控制小数点后的位数,避免了浮点数运算中常见的精度损失问题。
#define FloatPrecision(X,n) ((float)((int)(((X)+(((X)>=0)?5*pow(10,-(n+1)):-5*pow(10,-(n+1))))*pow(10,(n)))/pow(10,(n))))
1091
2060

被折叠的 条评论
为什么被折叠?