对含有小数点的数进行四舍五入是比较普遍的一种需求。在C++中也有类似的取整函数。在C++的头文件中有floor()和ceil()函数。在STL中还有round()函数。这三个函数的作用如下:

           
函数名称 函数说明 2.1 2.9 -2.1 -2.9
Floor() 不大于自变量的最大整数 2 2 -3 -3
Ceil() 不小于自变量的最大整数 3 3 -2 -2
Round() 四舍五入到最邻近的整数 2 3 -2 -3

从函数说明中可以看出, 
(1) Floor()会取不大于自变量的最大整数,这样自变量是3.1或3.9是没有区别的,返回都是3;自变量是-2.1或-2.9也是没有区别的,返回都是-3; 
(2) Ceil()会取不小于自变量的最大整数,这样自变量是3.1或3.9,返回都是4;自变量是-2.1或-2.9,返回的都是-2; 
(3) Round()函数,才是我们需要的四舍五入的函数,因为它会返回离自变量最近的整数,这个返回的整数可能大于也可能小于原来的数,但是一定是离它最近的那个整数。

注:floor(), ceil()函数都包含在头文件“Math.h”中,但是round()函数未包含在该头文件中。因此可以通过以上的原理,来自己实现round()函数,实现含有小数的数字的四舍五入。

代码实现一:

int round_double(double number)
{return (number > 0.0) ? (number + 0.5) : (number - 0.5);
}
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

代码实现二:

int round_double(double number)
{return (number > 0.0) ? floor(number + 0.5) : ceil(number - 0.5);
}

C/C++中的取整运算相关推荐

  1. Python中的取整运算

    Python中的取整运算 1.int()向下取整 1 n = 3.75 2 print(int(n)) >>>3 2.round() 四舍五入取整 1 n = 3.75 2 prin ...

  2. java 凑整_Java语言中的取整运算(包括截尾取整,四舍五入,凑整)? – 日记

    import java.math.BigDecimal; import java.text.DecimalFormat; public class TestGetInt{ public static ...

  3. Python中的取整、取余运算

    1.取整运算 在Python中取整运算的运算符为//,且取整运算的取整为向下取整,不进行四舍五入 例:9//4=2,即9对4取整等于2 -9//-4=2,因为-9÷-4=2.25,取整为2 那么问题来 ...

  4. Python中的取模运算方法

    一个关于-10%3的小问题,python在运算 -10%3和 10%-3时的输出结果竟然是2和-2,但是我们自己手动运算的话结果难道不是 -1和1吗?所以记录一下吧! 在小学中关于余数的定义,在整数的 ...

  5. 大于3小于4的整数bleem_java中的取整与四舍五入方法实例

    java中的取整与四舍五入方法实例,方式,正数,负数,四舍五入,小数点 java中的取整与四舍五入方法实例 易采站长站,站长之家为您整理了java中的取整与四舍五入方法实例的相关内容. 一.java中 ...

  6. python中的取整

    虽然取整是各种语言中最基础的操作, 可是往往多了一个1或者少了一个1会导致巨大的灾难,所以我觉得还是很有必要写一下的. python中的取整操作有://, round, int, ceil, floo ...

  7. MATLAB取整运算

    MATLAB的五种取整运算 1 按照四舍五入的规则取整 形式:round(x) >> round(3.6) ans =4 ------------ >> round(3.4) ...

  8. 取模是什么意思python_原来Python中的取模运算方法竟然是这样的!

    今天小编就为大家分享一篇Python中的取模运算方法,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 所谓取模运算,就是计算两个数相除之后的余数,符号是%.如a % b就是计算a除以b ...

  9. python取模运算_Python中的取模运算方法

    所谓取模运算,就是计算两个数相除之后的余数,符号是%.如a % b就是计算a除以b的余数.用数学语言来描述,就是如果存在整数n和m,其中0 <= m < b,使得a = n * b + m ...

最新文章

  1. UNITY2018 真机开启deepprofiling的操作
  2. C#继承与多态 virtual虚方法的使用 在子类中使用override重写父类函数
  3. 我的8年经验之谈:35岁的功能测试就没有未来了?自己也能拯救自己!
  4. win10 android 手机驱动下载,win10手机刷机包驱动
  5. 韩国瑜会见陆委会主委陈明通:别给高雄念紧箍咒
  6. 图文并茂全面总结上百个Android Studio好用的插件(IDE通用)
  7. GUID分区表的学习
  8. 华为首款台式机计算机发布,华为首款商用台式机一文读懂:商用PC进入智慧时代...
  9. C 语言吧 · 问题资料大全
  10. 【转发】JS实现密码加密
  11. Linux ALSA 之六:ALSA ASoc 架构
  12. python数据分析岗位_python拉勾数据职位分析
  13. 去年四大业务全线“上涨”,这家零部件巨头仍净亏近8千万欧元
  14. 秋天来了,穿衣搭配。简单几件穿出独特气质
  15. Docker——阿里云搭建Docker Swarm集群
  16. 一、我来说LuCI: LuCI官方----3. Theme and Modules
  17. php 递归递实现无限层级
  18. 网站开发CSS十条口诀
  19. Vue.use 写多个_尼玛扎西:躬耕高原 把论文写在大地上
  20. TerminateThread 导致LoadLibary 死锁

热门文章

  1. 做食品蔬菜零售有什么好用方便的管理软件?
  2. FFmpeg+VS2013开发环境配置
  3. fstream 对象多次使用时注意clear
  4. F.softmax函数dim解读
  5. Python中type的使用和元类的理解
  6. 加强舆情监控有哪些方法,互联网舆情监控平台有哪些?
  7. 小程序源码-猫狗叫声模拟器
  8. 韵律和我……歌颂音乐的音乐《最好的声音》
  9. 传奇解决登陆器报毒360秒过百度杀毒 金山 卡吧 远控免杀技术
  10. linux不能引用头文件,不能在vsi2017的linux子系统中包含头文件