跳到主要内容

cmath中的函数

最大最小值

max求最大值

int a=1,b=2;
cout<<max(a,b);//输出2

min求最小值

int a=1,b=2;
cout<<min(a,b);//输出1

次方

cout<<pow(2,3);//输出2的三次方 8
要注意默认返回的是double类型,直接输出时可能是科学记数法
cout<<pow(2,20);//1.04858e+06

开根

sqrt(x) 表示求谁的平方是x的意思

cout<<sqrt(4);//2      因为2的平方是4
cout<<sqrt(1.44);//1.2 因为1.2的平方是1.44

绝对值

abs(x) 求整数、小数的绝对值 正数不变,负数变正数

cout<<abs(-3);   //3      
cout<<abs(-4.15);//4.15
cout<<abs(2); //2

向上取整

ceil() 求一个小数向上取整的结果

cout<<ceil(4.99);//5
cout<<ceil(4.11);//5
cout<<ceil(4.0); //4
cout<<ceil(-3.99);//-3 向上取整,向大的数取整

只要小数部分不是0,就会向上加1,小数部分归零

向下取整

floor() 求一个小数向下取整的结果,但是返回的是小数

cout<<floor(4.99);//4
cout<<floor(4.11);//4
cout<<floor(4.0); //4
cout<<floor(-3.99);//-4 向下取整,向小的数取整
ceil( ) floor( ) int( )的差别

三者都是取整,但是也有区别

-ceil( )floor( )int( )
含义向上取整向下取整去掉小数
返回类型小数小数整数
对3.4取整433
对-3.4取整-3-4-3

fmod(x,y)

小数不能直接%取余,但是可以这样算

double a=3.5,b=1.1;
cout<<a-int(a/b)*b;

也可以直接用函数计算

double a=3.5,b=1.1;
cout<<fmod(a,b);//输出0.2