C语言中向下取整函数244


在C语言中,向下取整函数可以将一个浮点数或双精度数向下取整到最接近的整数,舍弃小数部分。有两个内置函数可以实现向下取整操作:floor()和trunc()。

floor() 函数

floor()函数将浮点数或双精度数向下取整到最接近的较小整数。如果给定的数为负数,则向下取整到最接近的较大整数。语法如下:```c
double floor(double x);
```

其中,x是要向下取整的浮点数或双精度数。

示例:


```c
#include
#include
int main() {
double x = 3.141592;
double y = -2.718282;
printf("floor(x) = %.1f", floor(x));
// 输出:floor(x) = 3.0
printf("floor(y) = %.1f", floor(y));
// 输出:floor(y) = -3.0
return 0;
}
```

trunc() 函数

trunc()函数将浮点数或双精度数向下取整到最接近的整数,朝0方向舍入。即,正数向下舍入到0,负数向上舍入到0。语法如下:```c
double trunc(double x);
```

其中,x是要向下取整的浮点数或双精度数。

示例:


```c
#include
#include
int main() {
double x = 3.141592;
double y = -2.718282;
printf("trunc(x) = %.1f", trunc(x));
// 输出:trunc(x) = 3.0
printf("trunc(y) = %.1f", trunc(y));
// 输出:trunc(y) = -2.0
return 0;
}
```

区别

floor()和trunc()函数的区别在于它们舍入的方向。floor()会向负无穷大方向舍入,而trunc()会向0方向舍入。这意味着对于正数,这两个函数的结果相同,但对于负数,trunc()的结果会比floor()的结果大1。

注意事项* floor()和trunc()函数返回一个double类型的值,即使给定的参数是一个float类型的值。
* 对于NAN(非数字)和INF(无穷大)等特殊值,这些函数的行为是未定义的。
* 这些函数在数学运算中非常有用,例如求最大公约数、最小公倍数和四舍五入操作。

2024-10-19


上一篇:C 语言中的字符串输入和输出函数

下一篇:C 语言中输出变量 % 格式说明符的全面指南