C语言四舍五入计算方法(包含各种精度)

简介: C语言四舍五入计算方法(包含各种精度)

前言

当我们直接使用 / 号的时候,只能实现整除的操作,当有些题目要求四舍五入的功能的时候,如果没有见过可能会无从下手,下面会介绍四舍五入的具体方法及实现。

既然都是四舍五入操作,为什么要分位数来讲呢?因为虽然原理一样,可是因为要求精度的不同,我们需要的变量类型就不相同,这里有一些操作怕初学者分辨不来,所以就分开来一个一个的展示代码了。


一、精度到十位或十位以上的四舍五入

对于精度到十位数或十位数以上的四舍五入操作,我们需要用到的变量只有整形就够了,因为四舍五入操作需要根据所需精度的下一位进行四舍五入判断,所以个位数精度就需要转成别的类型,不在这个这一框里。

那具体是怎么实现四舍五入的呢?非常简单,比如现在我们要对200/3进行一个精度在十位数的四舍五入操作,直接整除答案为60,而我们需要的答案是70。我们需要得到所需精度下一位的整除结果,即200/3=66,这时候我们再将((所需精度的下一位+5)/10)*10,为什么这么操作呢?我们这时候只要把65带进去,我们就可以发现已经实现了精度到十位数的四舍五入!代码如下。

1. #include <stdio.h>
2. #include <stdlib.h>
3. 
4. int main()
5. {
6. int a = 200;
7. int t = ((a / 3 + 5) /10 )* 10;
8. printf("%d", t);
9. system("pause");
10. return 0;
11. }

二、精度在小数点后的四舍五入

大部分操作是与上述一样的,只需把需要数据类型换成float即可,精度为小数点后两位代码如下。

1. #include <stdio.h>
2. #include <stdlib.h>
3. 
4. int main()
5. {
6. float a = 200;
7. float t = ((a / 3 + 0.005) /10 )* 10;
8. printf("%.2f", t);
9. system("pause");
10. return 0;
11. }

这里的输出格式%.2f其实会自动帮我们四舍五入,但这里以讲解原理为主大家知道就行。

三、精度到个位数的四舍五入

这个为什么要单独拎出来讲呢,大部分原理也是相同的,特殊的地方是,在他进行四舍五入的计算时需要用到浮点型去存储小数点后一位的数据,但最后需要得到的类型是整形的,所以我们需要在运算过程中做一个强制类型转化的操作。代码如下。

1. #include <stdio.h>
2. #include <stdlib.h>
3. 
4. int main()
5. {
6. int a = 200;
7. int t = (int)((float)a / 2 + 0.5);
8. printf("%d", t);
9. system("pause");
10. return 0;
11. }
相关文章
|
23天前
|
存储 算法 安全
C 语言中的位运算:挖掘底层计算的高效力量
位运算是C语言中直接操作二进制位的一种技术,能高效处理底层数据,广泛应用于优化算法、硬件编程等领域,是掌握C语言高级特性的关键之一。
|
25天前
|
传感器 人工智能 物联网
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发,以及面临的挑战和未来趋势,旨在帮助读者深入了解并掌握这些关键技术。
42 6
|
25天前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
70 4
|
6月前
|
存储 C语言
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
【C语言刷题每日一题#牛客网HJ73】——计算日期到天数转换(给定日期,计算是该年的第几天)
|
2月前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
31 3
|
6月前
|
C语言
c语言左旋字符串问题(不同方法超详细解答)
c语言左旋字符串问题(不同方法超详细解答)
31 1
|
6月前
|
存储 安全 C语言
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
【C语言刷题每日一题】——求最大公约数(带数学计算过程详解)
|
6月前
|
存储 C语言
【C语言刷题每日一题】——计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
【C语言刷题每日一题】——计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果
|
6月前
|
机器学习/深度学习 算法 C语言
详细介绍递归算法在 C 语言中的应用,包括递归的基本概念、特点、实现方法以及实际应用案例
【6月更文挑战第15天】递归算法在C语言中是强大力量的体现,通过函数调用自身解决复杂问题。递归涉及基本概念如自调用、终止条件及栈空间管理。在C中实现递归需定义递归函数,分解问题并设定停止条件。阶乘和斐波那契数列是经典应用示例,展示了递归的优雅与效率。然而,递归可能导致栈溢出,需注意优化。学习递归深化了对“分而治之”策略的理解。**
132 7
|
6月前
|
C语言
C语言---试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?
C语言---试计算在区间1 到n 的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?