ClickHouce 取整函数&四舍五入函数

目录

1、floor(x[,N])

2、ceil(x[,N]),ceiling(x[,N])

3、trunc(x[, N]), truncate(x[, N]) 

4、round(x[,N])


1、floor(x[,N])

说明:返回小于或等于x的最大舍入数。

该函数使用参数乘1/10N,如果1/10N不精确,则选择最接近的精确的适当数据类型的数。

参数:

x 是任何数字类型。结果与其为相同类型。

    对于整数参数,使用负’N’值进行舍入是有意义的(对于非负«N»,该函数不执行任何操作)。

N 是一个整数常量,以是负数,可选参数 。默认为 0,这意味着不对其进行舍入。

例子:

select
  floor(9.12)      as data_1  -- 9
, floor(-9.12)     as data_2  -- -10
, floor(9.55, 1)   as data_3  -- 9.5
, floor(99.55, -1) as data_4 ; --  90

注:如果取整导致溢出(例如,floor(-128,-1)),则返回特定于实现的结果

 

2、ceil(x[,N]),ceiling(x[,N])

说明:返回大于或等于’x’的最小舍入数。在其他方面,它与’floor’功能相同(见上文)。

例子:

-- 9.6,-0,100
select ceil(9.55, 1),ceil(-9.12, -2),ceil(99.55,-1) union all
select ceiling(9.55, 1),ceiling(-9.12, -1),ceiling(99.55,-1);

 

3、trunc(x[, N]), truncate(x[, N]) 

说明:说明:返回具有最大绝对值的整数,该整数的绝对值小于或等于x。在其他方面,它与“floor”函数相同(见上文)

例子:

-- 9.5,-0,90
select trunc(9.55, 1),trunc(-9.12, -2),trunc(99.55,-1) union all
select truncate(9.55, 1),truncate(-9.12, -1),truncate(99.55,-1);

 

4、round(x[,N])

说明:将值取整到指定的小数位数。 该函数按顺序返回最近的数字。

语法:round(expression [, decimal_places])

参数:

expression — 要进行取整的数字。可以是任何返回数字类型的表达式。

decimal-places — 整数类型。

  • 如果decimal-places > 0,则该函数将值舍入小数点右侧。
  • 如果decimal-places < 0,则该函数将小数点左侧的值四舍五入。
  • 如果decimal-places = 0,则该函数将该值舍入为整数。在这种情况下,可以省略参数。

返回值:与输入数字相同类型的取整后的数字。

例子:

-- 取整到最近的整数
select
  round(3.2, 0)    as data_1 --  3
, round(4.1267, 2) as data_2 --  4.13
, round(22,-1)     as data_3 --  20
, round(467,-2)    as data_4 --  500
, round(-467,-2)   as data_5; --  -500

注:如果给定数字包含多个最近数字,则函数返回其中最接近偶数的数字(银行的取整方式)

例子:

-- 银行的取整。
select
 round(5.5)     as data_1  -- 6
,round(6.5)     as data_2  -- 6
,round(7.55, 1) as data_3  -- 7.6
,round(7.65, 1) as data_4; -- 7.6

 

参考:https://clickhouse.tech/docs/en/sql-reference/functions/rounding-functions/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值