用c++写一个向下取整的函数
时间: 2024-05-06 21:20:09 浏览: 85
以下是用C语言编写的向下取整函数:
```c
#include <stdio.h>
int floor(double num) {
int result = (int)num; // 将 num 转换为整数
if (num < 0 && num != result) {
result--; // 处理负数的情况
}
return result;
}
int main() {
double num = 3.7;
printf("向下取整 %lf: %d\n", num, floor(num)); // 输出 "向下取整 3.7: 3"
num = -4.2;
printf("向下取整 %lf: %d\n", num, floor(num)); // 输出 "向下取整 -4.2: -5"
return 0;
}
```
上述代码中,`floor` 函数的参数是一个浮点数 `num`,其返回值是向下取整后的整数。如果 `num` 为正数,则直接将其转换为整数;如果 `num` 为负数,则先将其转换为整数再减去 1,以保证向下取整的结果正确。在主函数中,我们分别测试了正数和负数的情况。
相关问题
C++向下取整函数floor函数用法实例
floor函数是C语言中的一个数学函数,用于向下取整,即返回不大于输入参数的最大整数值。其用法如下:
```c
#include <math.h>
double floor(double x);
float floorf(float x);
long double floorl(long double x);
```
其中,x为要进行向下取整的数值,函数返回值为double、float或long double类型的向下取整结果。
例如,将3.8向下取整,结果为3:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double x = 3.8;
double result = floor(x);
printf("floor(%.1f) = %.1f\n", x, result);
return 0;
}
```
输出结果为:
```
floor(3.8) = 3.0
```
注意,当x为负数时,floor函数返回的是不大于x的最大整数,即向下取整的结果为负数。例如,将-3.8向下取整,结果为-4:
```c
#include <stdio.h>
#include <math.h>
int main()
{
double x = -3.8;
double result = floor(x);
printf("floor(%.1f) = %.1f\n", x, result);
return 0;
}
```
输出结果为:
```
floor(-3.8) = -4.0
```
c++向上取整和向下取整
在 C++ 中,向上取整和向下取整可以使用 `ceil()` 和 `floor()` 函数来实现,具体如下:
- `ceil()` 函数用于向上取整,它返回大于或等于给定浮点数的最小整数。
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double num = 3.14;
double result = ceil(num); // result = 4
cout << result << endl;
return 0;
}
```
- `floor()` 函数用于向下取整,它返回小于或等于给定浮点数的最大整数。
```c++
#include <iostream>
#include <cmath>
using namespace std;
int main() {
double num = 3.14;
double result = floor(num); // result = 3
cout << result << endl;
return 0;
}
```
总的来说,`ceil()` 函数会将小数部分向上取整,而 `floor()` 函数会将小数部分向下取整。
阅读全文