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

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

相关推荐
mmz120727 分钟前
单调栈(c++)
c语言·c++
码农Cloudy.2 小时前
数据结构 --- 顺序表
c语言·数据结构
1白天的黑夜112 小时前
数据结构之堆(topk问题、堆排序)
c语言·数据结构·算法
一点.点16 小时前
针对C语言的开发工具推荐及分析(涵盖编辑器、集成开发环境(IDE)、编译器、调试工具及辅助工具)
c语言·开发工具
Hello.Reader18 小时前
Redis C语言连接教程
c语言·数据库·redis
?!71418 小时前
多线程和并发之线程
linux·c语言·c++
whoarethenext18 小时前
图像卷积OpenCV C/C++ 核心操作
c语言·c++·opencv·卷积
黑不拉几的小白兔19 小时前
第十五届蓝桥杯大赛软件赛国赛Python 大学 C 组试做【本期题单: 设置密码、栈】
c语言·python·蓝桥杯
guguhaohao1 天前
编译与链接,咕咕咕
c语言
生活很暖很治愈1 天前
《函数栈帧的创建和销毁》
c语言·数据结构·c++·编辑器