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

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

相关推荐
C++ 老炮儿的技术栈7 分钟前
在vscode 如何运行a.nut 程序(Squirrel语言)
c语言·开发语言·c++·ide·vscode·算法·编辑器
一川月白7091 小时前
数据结构---概念、数据与数据之间的关系(逻辑结构、物理结构)、基本功能、数据结构内容、单向链表(该奶奶、对象、应用)
c语言·数据结构·算法·哈希算法·单向链表·数据关系
能工智人小辰1 小时前
Educational Codeforces Round 181 (Rated for Div. 2) A-C
c语言·开发语言
饮浊酒2 小时前
初始C语言---第四讲(数组)
c语言·学习
酷飞飞5 小时前
C语言的复合类型、内存管理、综合案例
java·c语言·前端
海上Bruce6 小时前
C primer plus (第六版)第十章 编程练习第7,8,9,10,11题
c语言
仟濹6 小时前
【C/C++】整数超过多少位时用「高精度」
c语言·c++·算法
夏影孤灯6 小时前
C 语言问题
c语言·开发语言
程序员编程指南12 小时前
Qt 嵌入式界面优化技术
c语言·开发语言·c++·qt
云泽80813 小时前
数据结构前篇 - 深入解析数据结构之复杂度
c语言·开发语言·数据结构