文章目錄
- 一、round(x[,N])
- 二、floor(x[,N])
- 三、ceil(x[,N]),ceiling(x[,N])
- 四、trunc(x[, N]), truncate(x[, N])
一、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, # 3round(4.1267, 2) as data_2, # 4.13round(22,-1) as data_3, # 20round(467,-2) as data_4, # 500round(-467,-2) as data_5; # -500
注:如果給定的數字包含多個最近數字,則函數返回其中最接近偶數的數字(銀行的取整方式)。
例如:
select round(5.5) as data_1, # 6round(6.5) as data_2, # 6round(7.55, 1) as data_3, # 7.6round(7.65, 1) as data_4; # 7.6
二、floor(x[,N])
說明: 返回小于或等于x的最大舍入數。
該函數使用參數乘1/10N,如果1/10N不精確,則選擇最接近的精確的適當數據類型的數。
參數說明:
-
x
:是任何數字類型。結果與其為相同類型。對于整數參數,使用負’N’值進行舍入是有意義的(對于非負?N?,該函數不執行任何操作)。 -
N
:是一個整數常量,以是負數,可選參數 。默認為 0,這意味著不對其進行舍入。
例子:
selectfloor(9.12) as data_1, # 9floor(-9.12) as data_2, # -10floor(9.55, 1) as data_3, # 9.5floor(99.55, -1) as data_4; # 90
注:如果取整導致溢出(例如,floor(-128,-1)),則返回特定于實現的結果。
三、ceil(x[,N]),ceiling(x[,N])
說明: 返回大于或等于’x’的最小舍入數。在其他方面,它與’floor’功能相同(見上文)。
例子:
select ceil(9.55, 1) as data_1, # 9.0ceil(-9.12, -2) as data_2, # -0ceil(99.55,-1) as data_3 # 100
union all
select ceiling(9.55, 1) as data_1, # 9.0ceiling(-9.12, -1) as data_2, # -0ceiling(99.55,-1) as data_3; # 100
四、trunc(x[, N]), truncate(x[, N])
說明: 返回具有最大絕對值的整數,該整數的絕對值小于或等于x。在其他方面,它與“floor”函數相同(見上文)
例子:
selecttrunc(9.55, 1) as data_1, # 9.0trunc(-9.12, -2) as data_2, # -0trunc(99.55,-1) as data_3 # 100
union all
selecttruncate(9.55, 1) as data_1, # 9.0truncate(-9.12, -1) as data_2, # -0truncate(99.55,-1) as data_3; # 100