SQL的四捨五入ROUND函式

2021-05-01 20:54:31 字數 1849 閱讀 3371

sql四捨五入2007/11/01 16:35問題1:

select cast('123.456' as decimal) 將會得到 123(小數點後面的將會被省略掉)。

如果希望得到小數點後面的兩位。

則需要把上面的改為

select cast('123.456' as decimal(38, 2)) ===>123.46

自動四捨五入了!

問題2:

select round(123.75633, 2, 1), round(123.75633, 2)

上面的sql得到的2個值是不一樣的,前乙個是:123.75000,後乙個是:123.76000。

因為前者在進行四捨五入之前,小數點後已經被擷取,保留了2位。

而後者則沒有被擷取,四捨五入時自然就會得到123.76000

round

返回數字表示式並四捨五入為指定的長度或精度。

語法round ( numeric_e-xpression , length [ , function ] )

引數numeric_e-xpression

精確數字或近似數字資料型別類別的表示式(bit 資料型別除外)。

length

是 numeric_e-xpression 將要四捨五入的精度。length 必須是 tinyint、smallint 或int。當 length 為正數時,numeric_e-xpression 四捨五入為 length 所指定的小數字數。當 length 為負數時,numeric_e-xpression 則按 length 所指定的在小數點的左邊四捨五入。

function

是要執行的操作型別。function 必須是 tinyint、smallint 或 int。如果省略 function 或 function 的值為 0(預設),numeric_e-xpression 將四捨五入。當指定 0 以外的值時,將截斷 numeric_e-xpression。

返回型別

返回與 numeric_e-xpression 相同的型別。

注釋round 始終返回乙個值。如果 length 是負數且大於小數點前的數字個數,round 將返回 0。

示例 結果

round(748.58, -4) 0

當 length 是負數時,無論什麼資料型別,round 都將返回乙個四捨五入的 numeric_e-xpression。

示例 結果

round(748.58, -1) 750.00

round(748.58, -2) 700.00

round(748.58, -3) 1000.00

示例a. 使用 round 和估計值

下例顯示兩個表示式,說明使用 round 函式且最後乙個數字始終是估計值。

select round(123.9994, 3), round(123.9995, 3)

go下面是結果集:

----------- -----------

123.9990    124.0000  

b. 使用 round 和四捨五入的近似值

下例顯示四捨五入和近似值。

語句 結果

select round(123.4545, 2)

123.4500

select round(123.45, -2)

100.00

c. 使用 round 截斷

下例使用兩個 select 語句說明四捨五入和截斷之間的區別。第乙個語句四捨五入結果。第二個語句截斷結果。

語句 結果

select round(150.75, 0)

151.00

select round(150.75, 0, 1)

150.00

SQL語句中的四捨五入round函式

很多時候,我們需要對資料的結果進行四捨五入操作math.round 在sql語句中也有這樣的函式round 對查詢的結果直接進行四捨五入操作再返回 1 round x 函式返回最接近於引數x的整數,對x值進行四捨五入。例如 round 4.56 5round 4.56 5 2 round x,y 函...

oracle中round 四捨五入

語法 round函式 語法為round number,num digits 其中number是需要進行四捨五入的數字 num digits為指定的位數,按此位數進行四捨五入,如果num digits大於 0,則四捨五入到指定的小數字,如果num digits等於 0,則四捨五入到最接近的整數,如果n...

模擬round內建函式,實現四捨五入函式

首先了解下round函式,很簡單,對浮點數進行近似取值,保留幾位小數 用法 round number,ndigits number 要四捨五入的數,ndigits 要小數點後保留的位數在實際使用中發現round函式並不總是如上所說的四捨五入。如 in 14 round 2.355,2 out 14 ...