C语言实现小数四舍五入

做日记笔记。
转载自https://blog.csdn.net/weixin_38505045/article/details/79994536
排版有更改

C语言中实现四舍五入:
(int)(a+0.5)即可。
很巧妙的用了取整规则。
也不用导入math.h
同样注意负数的情况。
把 + 换成 - 即可。

float f = ……;
int i = (int)(f + 0.5);
i就是f四舍五入的结果。

今天我要介绍在C语言中实现数据四舍五入的算法。
我们知道,C语言中去除小数位采用的方法就是强制性转化成整型类型。那么假如我们要对一个小数保留三个小数位,而第四个小数位按照四舍五入的规则进行,
该怎样实现呢?

很简单,我们将数字扩大1000倍,使得第四位小数称为新数字的第一位,然后我们可以给它加上0.5后再进行强制性转化。

加0.5的原因就是:
假如这个小数位的数值大于5,加上0.5能够实现进位的作用,倘若小于0.5,就没有实现进位的作用。如此,就能实现小数位的四舍五入。然后我们再对这个数值
进行强制性转化,然后再处以1000.0(记住,一定要1000.0,否则就会出现隐式转化),在输出的时候用%0.3f以实现保留三位小数。

# include <stdio.h>
int main(void) {float a;scanf("%f", &a);a = (int)(a*1000+0.5)/1000.0;printf("%0.3f", a);return 0;
}

C语言中保留两位小数:小技巧
1、
float a = 3.456; //保留到小数点后两位
float b =(int)((a * 100) + 0.5) / 100.0;
输出结果为3.46
精度比较高

2、
float a = 23.456789;
printf(“%.2f”,a); //输出为23.45

3、
有一个round函数可以直接调用,
round(x)
参数是double型,返回小数对整数部分的四舍五入值
比如 round(3.623); 返回4

#include"stdio.h"
#include"math.h"
void main()
{
float x;
scanf("%f",&x);
int y = round(x);
printf("%d",y);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425464.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS效果

效果属性 box-shadow/text-shadow/border-radius/background/clip-path box-shadow 图形阴影 <style type"text/css">.container{width: 50px;height:50px;background: red;box-shadow: 5px 5px 10px rgba(0,0,0,0.5)} </style> <body><div cla…

POJ-1384 Piggy-Bank 多重背包变形

题意 给我们一个容器的容量m n个物品 每个物品有不同的花费和价值 问我们再每个物品无限个的情况下 最后正好装满最后得到的最小价值是多少 如果装不满 就输出impossible 分析 目标状态&#xff1a;最小价值策略 限制条件&#xff1a;正好装满m的容量 多重背包模型 每个物…

13.表格标签及其应用实例

表格标签及其应用实例

1.6解不等式 1.6.1 平方根不等式

//《至美——C程序设计》 在这个前辈的代码上改了一点 S1赋值&#xff0c; s1 1; //赋值 如果提前未赋值会有警告&#xff0c;所以我就想赋值。然后我是在for循环里写的 while (1){m;s 0;s1 1;for (i m; i < 2 * m; i)s sqrt(i); /*对每一个m计算和s*/这会运行结果…

[剑指offer][JAVA]面试题第[31]题[栈的压入、弹出序列][栈]

【问题描述】[中等] 输入两个整数序列&#xff0c;第一个序列表示栈的压入顺序&#xff0c;请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如&#xff0c;序列 {1,2,3,4,5} 是某栈的压栈序列&#xff0c;序列 {4,5,3,2,1} 是该压栈序列对应的一个弹…

《七哥说道》第二章:初出茅庐之拜师学艺

【 转载请注明】&#xff1a; 原文出处&#xff1a;https://www.cnblogs.com/jstarseven/p/10499659.html 作者&#xff1a;jstarseven 码字挺辛苦的..... 怀着对第一份工作的遐想&#xff0c;15年6月1号&#xff08;儿童节啊&#xff09;&#xff0c;我开始了我的入职之旅。北…

hihocoder A Game 区间dp

题意 一个数串 A和B每人从这个数串的第一个或者最后一个元素选择一个数加到自己的得分里&#xff0c;A先选&#xff0c;求先手最大得分 样例&#xff1a; 4 -1 0 100 2 输出 99 分析 对于任意一个区间段 我们考虑的问题是相似的 不论任何区间段都是考虑取前面的还是取…

[Leedcode][JAVA][第67题][二进制求和][位运算][字符串]

【问题描述】[简单] 给你两个二进制字符串&#xff0c;返回它们的和&#xff08;用二进制表示&#xff09;。输入为 非空 字符串且只包含数字 1 和 0。示例 1:输入: a "11", b "1" 输出: "100" 示例 2:输入: a "1010", b "1…

解不等式之代数和不等式

代数和概念&#xff1a;数学用语。将数(实数)的加减法算式视为省略加号的几个有理数的和&#xff0c;称这个算式的结果为这几个有理数的代数和。 试解下列关于正整数n的代数和不等式&#xff1a; d < 11/2-1/31/41/5-1/61/n 其中d为从键盘输入的正数&#xff0c;式中代数和…

15.jsp简介

JSP 简介 什么是Java Server Pages? JSP全称Java Server Pages&#xff0c;是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。 JSP是一种Java servlet&#xff0c;主要用于实现Java web应用程序的用户界面部分。网页开发者…

wamp

进入localhost找不到项目文件 转载于:https://www.cnblogs.com/nzc520/p/10501528.html

POJ-1050 To the Max 二维最大子段和

题意 给我们一个二维矩阵 让我们在找出其中的最大子矩阵和 分析 对输入的一个矩阵 我们考虑一维线性矩阵 上的最大子段和 对于一个数串 我们的选择策略是 res max&#xff08;res,max( suma[ i ], a[ i ] )&#xff09;; res就是最后我们得到的最大子段和的结果 a[i]是…

16.jsp结构

JSP 结构 网络服务器需要一个 JSP 引擎&#xff0c;也就是一个容器来处理 JSP 页面。容器负责截获对 JSP 页面的请求。本教程使用内嵌 JSP 容器的 Apache 来支持 JSP 开发。 JSP 容器与 Web 服务器协同合作&#xff0c;为JSP的正常运行提供必要的运行环境和其他服务&#xff…

将一个5X5的矩阵中最大的元素放在中心, 4个角分别放4个最小的元素(顺序为从左到右,从上到下,从小到大存放)其余数字从小到大

将一个5X5的矩阵中最大的元素放在中心&#xff0c; 4个角分别放4个最小的元素&#xff08;顺序为从左到右&#xff0c;从上到下&#xff0c;从小到大存放&#xff09; 其余数字从小到大 在以前的要求上更改了一下&#xff0c;其余数字从小到大排序 #include <stdio.h> #…

[剑指offer][JAVA]面试题第[32-1]题[从上到下打印二叉树][BFS]

【问题描述】[中等] 从上到下打印出二叉树的每个节点&#xff0c;同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回&#xff1a;[3,9,20,15,7]【解答思路】 BFS 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a…

HDU 4403 A very hard Aoshu problem DFS

problem statement 这道题给我们一个不超过15位的整数 让我们在其中加等号或者加号 如果加完符号后符合计算结果 那么计数 最后输出所有的情况 problem analysis 这道题其实就是想办法遍历所有情况 把合法的记录下来 最终输出就得到解 如何枚举呢 我们可以枚举等号的位置…

计算机网络考试题库

计算机网络考试题库 第一章 一、单项选择题 1、计算机网络可以被理解为&#xff08; B &#xff09; A.执行计算机数据处理的软件模块 B.由自治的计算机互联起来的集合体 C.多个处理器通过共享内存实现的紧耦合系统 D.用于共同完成一项任务的分布式系统 2、计算机网络最基本的功…

《深入理解Java虚拟机》读书笔记一

第二章 Java内存区域与内存溢出异常 1、运行时数据区域 程序计数器&#xff1a; 当前线程所执行的字节码的行号指示器&#xff0c;用于存放下一条需要运行的指令。运行速度最快位于处理器内部。线程私有。虚拟机栈&#xff1a; 描述的是Java方法执行的内存模型&#xff0c;用于…