C语言 小数点后一位四舍五入的实现

[复制链接]
发表于 2025-7-24 00:22:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

  • 功能:输入float型变量,输出小数点一位四舍五入的结果
  • 举例1:输入1.65,输出1.7
  • 举例2:输入1.33,输出1.3

第一时间很容易想到使用四舍五入函数 round() 实现的方式:
  1. float My_Data.Data_Float;
  2. My_Data.Data_Float = 1.65;
  3. Data_Result = round(My_Data.Data_Float*10.0)/10.0; // 小数点后一位四舍五入
  4. // 实测Data_Result = 1.6,而非需要的1.7
复制代码
实测这种方式不能完全实现小数点后一位的四舍五入,输入1.75可以输出1.8,但是输入1.65时不能输出1.7。

保举使用“加0.5,再用 trunc() 取整”的方式:
  1. float My_Data.Data_Float;
  2. My_Data.Data_Float = 1.65;
  3. Data_Result = trunc(My_Data.Data_Float*10+0.5)/10.0; // 小数点后一位四舍五入
  4. // 实测Data_Result = 1.7
复制代码

知道原理的朋友欢迎在评论区给出根本原因的分析~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

快速回复 返回顶部 返回列表