ceil() floor() round()的用法

本文介绍数学函数ceil、floor和round的功能及使用方法,包括向上取整、向下取整和四舍五入,并通过示例代码展示了如何在C语言中调用这些函数。

用法:

 

?
1
2
3
4
5
6
7
#include <math.h>
 
double ceil ( double x);
 
double floor ( double x);
 
double round( double x);

ceil(x)返回不小于x的最小整数值(然后转换为double型)。即,向上取整

floor(x)返回不大于x的最大整数值。即,向下取整

round(x)返回x的四舍五入整数值。四舍五入

给个例子test.c:

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
#include <math.h>
 
int main( int argc, const char *argv[])
 
{
 
float num = 1.4999;
 
printf ( "ceil(%f) is %f\n" , num, ceil (num));
 
printf ( "floor(%f) is %f\n" , num, floor (num));
 
printf ( "round(%f) is %f\n" , num, round(num));
 
return 0;
 
}
 编译:$cc test.c -lm

执行:$./a.out

ceil(1.499900) is 2.000000

floor(1.499900) is 1.000000

round(1.499900) is 1.000000

### C++ 中 `ceil`、`floor` 和 `round` 的用法与区别 #### 定义与功能 - **`ceil(x)`**: 返回不小于 `x` 的最小整数值,即向上取整[^1]。 - **`floor(x)`**: 返回不大于 `x` 的最大整数值,即向下取整[^1]。 - **`round(x)`**: 返回最接近 `x` 的整数。如果 `x` 到两个相邻整数的距离相等,则返回离零更远的那个整数(四舍五入到最近的偶数)[^1]。 #### 参数类型支持 这些函数均支持多种数据类型的参数输入,包括但不限于 `double`, `float`, 和 `long double`。对于每种类型,都有对应的重载版本以确保精度匹配[^1]。 ```cpp #include <cmath> // 包含 math 库头文件 // 示例调用 double resultCeil = ceil(3.2); // 结果为 4.0 double resultFloor = floor(3.7); // 结果为 3.0 double resultRound = round(2.5); // 结果为 2.0 (注意:2.5 被视为靠近 2) ``` #### 实际应用对比 通过下面的例子可以清晰看到三者之间的差异: | value | round | floor | ceil | trunc | |-------|-------|-------|------|-------| | 2.3 | 2 | 2 | 3 | 2 | | 3.8 | 4 | 3 | 4 | 3 | | 5.5 | 6 | 5 | 6 | 5 | | -2.3 | -2 | -3 | -2 | -2 | | -3.8 | -4 | -4 | -3 | -3 | | -5.5 | -6 | -6 | -5 | -5 | 上述表格展示了不同浮点值经过各函数处理后的结果[^1]。 #### 特殊情况说明 当遇到负数时: - `ceil(-2.3)` 将会得到 `-2`,因为这是大于等于 `-2.3` 的最小整数; - `floor(-2.3)` 得到的是 `-3`,因为它寻找的是不超过该值的最大整数; - 对于 `round(-2.5)` 来说,由于遵循向最近偶数靠拢原则,在这种情况下它同样给出 `-2`. #### 总结 综上所述,虽然这三个函数都用于实现某种形式上的取整操作,但它们各自有着严格定义的行为模式以及适用场景的选择依据[^1]. 问题
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅气的东哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值