round,floor,ceil,trunc

本文通过CPlusPlus代码演示了round(四舍五入)、floor(向下取整)、ceil(向上取整)及trunc(正数向下、负数向上取整)等数学函数的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接贴上C Plus Plus的代码,很容易懂

/* round vs floor vs ceil vs trunc */
#include <stdio.h>      /* printf */
#include <math.h>       /* round, floor, ceil, trunc */

int main ()
{
	const char * format = "%.1f \t%.1f \t%.1f \t%.1f \t%.1f\n";
	printf ("value\tround\tfloor\tceil\ttrunc\n");
	printf ("-----\t-----\t-----\t----\t-----\n");
	printf (format, 2.3,round( 2.3),floor( 2.3),ceil( 2.3),trunc( 2.3));
	printf (format, 3.8,round( 3.8),floor( 3.8),ceil( 3.8),trunc( 3.8));
	printf (format, 5.5,round( 5.5),floor( 5.5),ceil( 5.5),trunc( 5.5));
	printf (format,-2.3,round(-2.3),floor(-2.3),ceil(-2.3),trunc(-2.3));
	printf (format,-3.8,round(-3.8),floor(-3.8),ceil(-3.8),trunc(-3.8));
	printf (format,-5.5,round(-5.5),floor(-5.5),ceil(-5.5),trunc(-5.5));
	return 0;
}


/*
Output:

value   round   floor   ceil    trunc
-----   -----   -----   ----    -----
2.3     2.0     2.0     3.0     2.0
3.8     4.0     3.0     4.0     3.0
5.5     6.0     5.0     6.0     5.0
-2.3    -2.0    -3.0    -2.0    -2.0
-3.8    -4.0    -4.0    -3.0    -3.0
-5.5    -6.0    -6.0    -5.0    -5.0

*/

round是四舍五入

floor是向下取值

ceil是向上取值

trunc是正数向下,负数向上

<think>我们正在使用Kingbase数据库,需要实现类似CEILFLOOR的数学函数。根据引用[1]和引用[3]的内容,KingbaseES已经内置了CEILFLOOR函数。 引用[1]明确指出:CEIL返回大于或等于n的最小整数。 引用[3]也列出了:ceil(dp or numeric):不小于参数的最小整数;floor(dp or numeric):不大于参数的最大整数。 因此,在Kingbase SQL中,我们可以直接使用内置的CEIL()和FLOOR()函数。 示例: 假设有一个数值列,我们可以这样使用: 对于CEIL函数: SELECT CEIL(123.456); -- 返回124 SELECT CEIL(-123.456); -- 返回-123 对于FLOOR函数: SELECT FLOOR(123.456); -- 返回123 SELECT FLOOR(-123.456); -- 返回-124 注意:这些函数可以接受double precision(dp)或numeric类型,并返回相同类型。 另外,引用[3]还提到了一些其他数学函数,如abs、mod、power、roundtrunc、random等,如果有需要也可以直接使用。 所以,用户不需要自己实现,直接使用内置函数即可。 相关问题: 1. Kingbase SQL中还有哪些常用的数学函数? 2. 在Kingbase SQL中如何对数值进行四舍五入? 3. 如何获取一个随机数? 4. 如何计算两个数值的模运算(余数)? 5. 在Kingbase SQL中,如何对数值进行截断操作?</think>在 KingbaseES 数据库中,可直接使用内置的 `CEIL()` 和 `FLOOR()` 函数实现向上/向下取整操作,无需额外实现。以下是具体用法: ### 1. **CEIL() 函数** - **功能**:返回大于或等于参数的最小整数 - **语法**:`CEIL(numeric_value)` - **示例**: ```sql SELECT CEIL(15.3); -- 返回 16 SELECT CEIL(-15.3); -- 返回 -15(因 -15 > -15.3) SELECT CEIL(100); -- 返回 100(整数直接返回) ``` ### 2. **FLOOR() 函数** - **功能**:返回小于或等于参数的最大整数 - **语法**:`FLOOR(numeric_value)` - **示例**: ```sql SELECT FLOOR(15.7); -- 返回 15 SELECT FLOOR(-15.7); -- 返回 -16(因 -16 < -15.7) SELECT FLOOR(100); -- 返回 100 ``` ### 3. **其他相关数学函数** KingbaseES 还提供以下常用数学函数(参考引用[3]): ```sql SELECT ABS(-5); -- 绝对值 → 5 SELECT MOD(10, 3); -- 取余 → 1 SELECT ROUND(15.75); -- 四舍五入 → 16 SELECT TRUNC(15.75); -- 截断小数 → 15 SELECT POWER(2, 3); -- 幂运算 → 8 SELECT RANDOM(); -- 随机数 (0.0 ≤ x < 1.0) ``` ### 注意事项 - **参数类型**:支持 `NUMERIC`、`DOUBLE PRECISION` 及可隐式转换为数值的类型 - **返回值类型**:与输入参数类型一致 - **边界值**:输入整数时直接返回原值(如 `CEIL(100)=100`) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值