C++ 向上向下取整
2021/10/10 17:15:55
本文主要是介绍C++ 向上向下取整,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
向下取整
- 整数除法运算符
/
代表向下取整, 常用于计算当中(适用于正数,对于负数计算来说,只是在正数的结果上加了个负号)
例如:5 / 2 = 2
,-5 / 2 = -2
- C++ floor()函数, floor(x)返回一个小于或等于x的最大整数
例如:floor(2.5) = 2
,floor(-2.5) = -3
- 直接舍去小数部分,赋值给整数变量(适用于正数)
例如:int a = 2.5, b = int(2.5), a, b数值都是2
向上取整
- C++ ceil()函数, ceil(x)返回一个大于x的最小正数
例如:ceil(2.5) = 3
,ceil(-2.5) = -2
- 公式
x = (a-1) / b + 1
, 变形一下得x = (a + b - 1) / b
- 直接舍去小数部分,赋值给整数变量(适用于负数)
例如:int a = -2.5, b = int(-2.5), a, b数值都是-2
补充:round()函数 用于四舍五入。转自https://blog.csdn.net/m0_46070659/article/details/105558575
正常用法:
对于小数而言,round()函数仅仅保留到整数位,即仅仅对小数点后一位四舍五入,
样例:
round(1.5)=2.000000 round(1.56)=2.000000 round(-1.5)=-2.000000 round(-1.56)=-2.000000
保留小数用法:
如果想要保留小数位数,则可以先乘后除
样例:
#include<stdio.h> #include<math.h> int main() { double x=1.5684; printf("对1.5684保留两位有效数字:"); printf("%.2lf\n",round(x*100)/100); return 0; }
结果:
对1.5684保留两位有效数字:1.57
手写round():
round()函数原理为
x=(int)(x+0.5)公式,故可以自己写出round()函数
#include<cstdio.h> double round(double x) { return (int)(x+0.5); } /* 不过这里我有一个问题,就是这个round函数我试了一下, 这个函数应该是返回一个double类型的数据,但是用cout输出的结果不是一个double类型的, 比如我输入的a是2.5,那么输出的结果就是3,我输入2.6,输出的结果就是3.1, 大家要有知道的这是为什么的,欢迎在下面给我留言哦,大家一起交流交流 */
这篇关于C++ 向上向下取整的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-13Slicm 框架怎么进行用户认证?-icode9专业技术文章分享
- 2024-11-13在查询时将 map_coord 列的值转换为字符串有哪些方法?-icode9专业技术文章分享
- 2024-11-13如何将微信地区改成自定义文案?-icode9专业技术文章分享
- 2024-11-13DNS 缓存存在问题有哪些症状和解决方法?-icode9专业技术文章分享
- 2024-11-13HTTP 状态码(405)-Method Not Allowed是什么意思?-icode9专业技术文章分享
- 2024-11-13HTTP 状态码(500)-Internal Server Error是什么意思?-icode9专业技术文章分享
- 2024-11-13在 Element UI 中无法修改 $confirm 的取消按钮文字是什么原因?-icode9专业技术文章分享
- 2024-11-13unity XR是什么?-icode9专业技术文章分享
- 2024-11-13伴随矩阵是什么?-icode9专业技术文章分享
- 2024-11-13怎么使用grep -E 来查找匹配最后 2 条数据?-icode9专业技术文章分享