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

  • 功能:输入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

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

相关推荐
长路归期无望39 分钟前
C语言小白实现多功能计算器的艰难历程
c语言·开发语言·数据结构·笔记·学习·算法
口嗨农民工2 小时前
win10默认搜索APP和window设置控制命板
linux·服务器·c语言
楼田莉子4 小时前
vscode搭建C/C++配置开发环境
c语言·开发语言·c++·vscode·学习·编辑器
轩源源5 小时前
双向链表,这也太简单了吧!(C语言实现)
c语言·数据结构·算法·链表·青少年编程
青草地溪水旁5 小时前
VSCode C/C++调试配置文件 `launch.json` 全字段深度解析
c语言·c++·vscode
mc23567 小时前
C语言指针详解
c语言·开发语言·算法
Lonble10 小时前
C语言篇:预处理
c语言·c
少陵野小Tommy11 小时前
C语言计算行列式的值
c语言·开发语言·学习·学习方法
迎風吹頭髮12 小时前
UNIX下C语言编程与实践23-模拟 UNIX ls -l 命令:lsl 程序的设计与实现全流程
服务器·c语言·unix
njxiejing13 小时前
C语言中的scanf函数(头文件、格式控制、取地址符号分析)
c语言·开发语言