- 功能:输入float型变量,输出小数点一位四舍五入的结果
- 举例1:输入1.65,输出1.7
- 举例2:输入1.33,输出1.3
第一时间很容易想到使用四舍五入函数 round() 实现的方式:
c
float My_Data.Data_Float;
My_Data.Data_Float = 1.65;
Data_Result = round(My_Data.Data_Float*10.0)/10.0; // 小数点后一位四舍五入
// 实测Data_Result = 1.6,而非需要的1.7
实测这种方式不能完全实现小数点后一位的四舍五入,输入1.75可以输出1.8,但是输入1.65时不能输出1.7。
推荐使用"加0.5,再用 trunc() 取整"的方式:
c
float My_Data.Data_Float;
My_Data.Data_Float = 1.65;
Data_Result = trunc(My_Data.Data_Float*10+0.5)/10.0; // 小数点后一位四舍五入
// 实测Data_Result = 1.7
知道原理的朋友欢迎在评论区给出根本原因的分析~