要用C语言实现四舍五入,有一个很巧妙的方法。仅使用 int i = (int)(a + 0.5)即可。如果遇到有负数的情况,只需要将加号改为减号即可。

我们知道,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;
}

转载于http://www.godreams.cn/?post=65

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

  1. C语言实现四舍五入后保留最后2位小数

    C语言实现四舍五入后保留最后2位小数 #include<stdio.h> int main() {float f(float x); // float x; // x=3.7896;flo ...

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

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

  3. C语言实数四舍五入为整数,c语言输入一个实数,求其四舍五入的整数

    输入两个正整数m和n,求其最大公约数和最小公倍数.用C语言编程 输入两个正整数m和n,求其最大公约数和最小公倍数.用辗转相除法求最大公约数算法描述:m对n求余为a,若a不等于0则m0){m_cup=m ...

  4. c语言关于四舍五入问题的详细解释

    目录 1.关于float函数四舍五入的思考 1.1 float函数不符合预期的输出 1.2 调试及解决方法 2.不适用库函数,自定义解决四舍五入问题 2.1 关于正数四舍五入的整数取法 2.2 关于正 ...

  5. C语言%.2f四舍五入

    #include <stdio.h> int main() {double d = 1.199;printf("%.2f", d);return 0; } 输出1.20 ...

  6. C语言实现四舍五入 c语言实现四舍五入

    直接上代码 #include<stdio.h> int main() {double a=0;scanf("%lf",&a);printf("%.0l ...

  7. C语言除法”四舍五入“与“进一法”的实现

    e:计算结果 a:被除数 b:除数: 1(四舍五入) : e=(a+(b/2))/b 2(进一法) : e=(a+(b-1))/b

  8. C语言 floor四舍五入,Math函數的四舍五入,Floor,Ceiling,Round的一些注意事項!...

    1.Math.Round:四舍六入五取偶 引用內容 Math.Round(0.0) //0 Math.Round(0.1) //0 Math.Round(0.2) //0 Math.Round(0.3 ...

  9. “四舍六入五成双规则” 与 C语言如何实现“四舍五入”

    1.四舍六入五成双规则 对于位数很多的近似数,当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是"四舍六入五成双",也即"4舍6入 ...

最新文章

  1. FieldGroup绑定的日期类型存储格式的问题
  2. 前端错误信息收集(errorEruda)解析
  3. TF之NN:利用DNN算法(SGD+softmax+cross_entropy)对mnist手写数字图片识别训练集(TF自带函数下载)实现87.4%识别
  4. 004 .NetReactor 3.6.0.0之另类脱壳法
  5. Leetcode-435:无重叠区间
  6. java写界面_java能不能直接做界面窗口
  7. 分隔线演练-利用参数增加分隔线的灵活度
  8. 修改蓝牙耳机按键映射_喜欢玩游戏的不要错过了,五款高性能游戏蓝牙耳机推荐...
  9. ROS报错:/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:119:9: error: ‘YOU_MIXED_DIFFERENT
  10. java映射理解_Java反射的理解
  11. 泰科推标签即服务服务,助力实现最大价值
  12. python定义常量
  13. C4D中阿诺德默认材质-万能材质-stander surface
  14. 交换机组合超级计算机,图解:世界上最快的超级计算机Roadrunner
  15. 3d游戏的总体设计框架
  16. zip压缩文件加密码以及Office文件打开需要密码
  17. 7部史诗级自然纪录片,孩子14岁前要看完!
  18. 如何画一块标准的PCB板?SMT工艺PCB要求
  19. 本人新开的一个人才网站,玉环人力网
  20. 小指数rsa 多线程版writeup

热门文章

  1. Shell之MP3播放器
  2. Cobaltstrike 魔改需要改哪些
  3. vue:生成二维码 qrcode、vue-qr(二维码中间可带logo)
  4. 价格直方图(市场概况)及其在 MQL5 中的实施
  5. 【案例】华为桌面云助力中国银行打造高效研发开发平台
  6. python做一个闹钟_【玩转Python】为女朋友打造一款智能语音闹钟
  7. JavaScript 实现禁止打开控制台(右键/工具栏/F12/Shift+Ctrl+I)
  8. 恋爱指南----《强迫的爱》
  9. 基于Python将多个表格数据合成为一个表格数据
  10. C++下用OpenGL制作星月绕行动画