×
单片机 > 单片机程序设计 > 详情

STM32学习笔记7——浮点数四舍五入

发布时间:2020-05-21 发布时间:
|

C 中浮点转换为整型是截断的,直接将后面的小数去掉,而不是四舍五入。 

如:uint16_t(12.89)=12,而不是13。 

项目中写了个小函数,将浮点数输入后,直接用7段译码管显示,用上述方法转换为整型后发现有显示误差。解决方法如下:


1、定义一个四舍五入小数的宏


#define ROUND_TO_UINT16(x)   ((uint16_t)(x)+0.5)>(x)? ((uint16_t)(x)):((uint16_t)(x)+1) //将浮点数x四舍五入为uint16_t


2、使用例程 

下面即可将数据四舍五入为整型数


disp_num = ROUND_TO_UINT16(num);


ROUND_TO_UINT16(12.89)=13!


关键字:STM32  浮点数  四舍五入 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析