/
代表向下取整, 常用于计算当中(适用于正数,对于负数计算来说,只是在正数的结果上加了个负号)5 / 2 = 2
, -5 / 2 = -2
floor(2.5) = 2
, floor(-2.5) = -3
int a = 2.5, b = int(2.5), a, b数值都是2
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()函数仅仅保留到整数位,即仅仅对小数点后一位四舍五入,
样例:
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()函数原理为
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, 大家要有知道的这是为什么的,欢迎在下面给我留言哦,大家一起交流交流 */