c语言中常见的四种取整方式:trunc(),floor(), ceil()和trunc()

1.trunc()函数:截断小数部分,放回整数部分 本质直接把小数部分丢掉,向0取整

参数:x 是要截断的浮点数(double 类型)

返回值:截断后的值(仍然是 double 类型,但小数部分为 0)

#include

double trunc(double x);

/*******例子**********/

#include

#include

int main() {

double num1 = 3.7;

double num2 = -2.9;

printf("trunc(3.7) = %.1f\n", trunc(num1)); // 输出 3.0

printf("trunc(-2.9) = %.1f\n", trunc(num2)); // 输出 -2.0

return 0;

}

输出结果

trunc(3.7) = 3.0

trunc(-2.9) = -2.0

2:floor():用于 向负无穷方向取整(即向下取整)

对 x 向下取整(向更小的整数方向舍入)

返回类型:double(即使结果是整数,也会返回 3.0 这样的浮点数)

#include

double floor(double x); // 标准 double 版本

float floorf(float x); // float 版本(C99)

long double floorl(long double x); // long double 版本(C99)

与trunc()函数的区别在于负数的处理,trunc(x)直接丢掉小数部分,向0靠近,对于原数x来说变大的。而floor则是变得更小

3.ceil() 函数:向正无穷取整(向上取整)

对 x 向上取整(向更大的整数方向舍入)

返回类型:double(即使结果是整数,也会返回 4.0 这样的浮点数)

#include

double ceil(double x); // 标准 double 版本

float ceilf(float x); // float 版本(C99)

long double ceill(long double x); // long double 版本(C99)

4:round() 函数的:用于 四舍五入取整

对 x 四舍五入取整(即向最接近的整数舍入)

返回类型:double(即使结果是整数,也会返回 4.0 这样的浮点数)

#include

double round(double x); // 标准 double 版本

float roundf(float x); // float 版本(C99)

long double roundl(long double x); // long double 版本(C99)

#include

#include

int main() {

printf("round(3.2) = %.1f\n", round(3.2)); // 3.0

printf("round(3.5) = %.1f\n", round(3.5)); // 4.0

printf("round(-2.3) = %.1f\n", round(-2.3)); // -2.0

printf("round(-2.8) = %.1f\n", round(-2.8)); // -3.0

return 0;

}