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;
}

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

C语言中保留两位小数:小技巧

float a = 3.456; //保留到小数点后两位
float b =(int)((a * 100) + 0.5) / 100.0;
输出结果为3.46
精度比较高

float a = 23.456789;

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

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

转载于:https://blog.csdn.net/weixin_38505045/article/details/79994536

C语言中实现四舍五入相关推荐

  1. C语言中关于四舍五入的计算方法

    C语言中关于四舍五入的处理 利用取整运算截断 eg: 数字0.45 取整后结果为0: 数字3.67取整后结果为3: 做整数部分的四舍五入 即:x=(int)(0.45+0.7) 取整后结果为1: #i ...

  2. 关于c语言中如何四舍五入(圆整)的问题!

    关于c语言中如何四舍五入(圆整)的问题! 在c语言中,用70.0/6得到的值赋给一个浮点变量,只会得到11.666667(因为浮点型只留下小数点后六位),而如果我们想输出结果的约数,必须要对结果进行四 ...

  3. c 语言 移位四舍五入,关于C 语言中的四舍五入问题

    (int)(x+0.5)但也指出这种方法对负数无效.此外,一个更为明智的方法是用 long 替代 int.下面我们来更进一步地解释这个问题.首先,这个问题的解决方案取决于我们所需要的转换方式:是截断转 ...

  4. go语言中的类型转换

    package mainimport ("fmt""math""strconv" )func main(){// 类型不能混合使用// 1. ...

  5. python语言中整型对应的英文_Python基本数据类型详细介绍(转)

    1.空(None)表示该值是一个空对象,空值是Python里一个特殊的值,用None表示.None不能理解为0,因为0是有意义的,而None是一个特殊的空值. 2.布尔类型(Boolean) 在 Py ...

  6. 为什么python除法结果会有小数点0_关于python:为什么整数除法会在许多脚本语言中向下取整?...

    在我测试过的语言中,- (x div y )不等于-x div y: 我已经在Python中测试了//,在Ruby中测试了/,在Perl 6中测试了div: C具有类似的行为. 该行为通常是按照规范进 ...

  7. long在C语言中是非法字符吗,C程序设计实践——实验指导

    一.课程的总体目标和具体要求 总体目标: 利用C语言和程序设计方法编制程序,借助计算机解决问题的基本能力.(支撑毕业能力要求1)独立解决文本处理.数学上的一些问题,编写较规范化的代码.(支撑毕业能力要 ...

  8. c语言 格式转换函数,C语言中的格式转换函数.doc

    C语言中的格式转换函数 C语言中的格式转换函数 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过 ...

  9. 【汇编语言与计算机系统结构笔记03】浮点数的计算机表示,IEEE 754,舍入(rounding),C语言中的浮点数

    本次笔记内容: 04.浮点数的计算机表示 文章目录 IEEE的浮点数标准 IEEE的754标准 浮点数示例 计算机中浮点数二进制表示 浮点数的类型 规格化浮点数(Normalized) 规格化浮点数示 ...

最新文章

  1. Java技术——Iterator和Enumeration的不同
  2. linux tracepoint例子,tracepoint介绍
  3. 阿里云 nginx php mysql_阿里云 Ubuntu + Nginx + PHP + MySQL
  4. 【OpenPose-Windows】OpenPose+VS2015+Windows+CUDA8+cuDNN5.1 官方配置教程
  5. 【MATLAB统计分析与应用100例】案例004:matlab调用smoothts函数对金融时间序列数据进行平滑处理
  6. c#中接口的使用方法图解_c# 接口方法中使用new有什么用?
  7. hibernate的查询缓存
  8. C/C++排序算法(2)希尔排序
  9. 基于CSE的微服务架构实践-Spring Cloud技术栈选型
  10. poj 1751 Highways 最小生成树Kruskal(、Prim还没写
  11. ssas表格模型 权限控制_创建第一个SSAS表格模型数据库
  12. 电脑tf卡检测不到_tf卡 插入电脑没盘符,但数据恢复软件能检测到异常
  13. bitbucket搭建
  14. [Unity3d]刀斧武器砍击的攻击碰撞判定
  15. 如何用 C 语言写一个生日蛋糕?
  16. 灰狼优化算法训练多层感知神经网络研究(Matlab代码实现)
  17. NNabla:索尼开源的一款神经网络框架
  18. 使用Redis如何设置永久密码
  19. 软件测试:sql注入·依赖基本sql语句
  20. 可编程区块链以太坊的未来

热门文章

  1. 小程序swiper带切换按钮
  2. 精通Signaltap
  3. 面试官看我简历写精通redis,让我聊聊sds是什么?
  4. Python 爬虫(一):爬虫伪装
  5. 【js、vue-print-nb】js 在Chorme中打印页面去掉页眉页脚
  6. 转自大佬的我在拼多多的三年
  7. 骨传导耳机的原理是什么,什么人群适合用骨传导耳机
  8. 华为机试2——比赛顺序
  9. SiT9365:超低抖动0.23ps差分晶振,LVPECL/LVDS/HCSL
  10. C#之CAD二次开发(19) 组合条件的选择集过滤