1. 程式人生 > 實用技巧 >Sql中的小數點和保留位數

Sql中的小數點和保留位數

直接上程式碼

首先明確:

1.round() 函式是四捨五入用,第一個引數是我們要被操作的資料,第二個引數是設定我們四捨五入之後小數點後顯示幾位2.numeric 函式的2個引數,第一個表示資料長度,第二個引數表示小數點後位數。
3.CAST()函式和CONVERT()函式都不能執行四捨五入或截斷操作。

雖然說CAST不支援四捨五入,但是有的還是執行了四捨五入了:

select cast('12.239' as decimal(5,2))--12.24

反正,遇到四捨五入還是用Round吧

例子

--decimal(32,3) 這裡的'3'是你要保留的位數
select cast('
12.362222' as decimal(32,3))--》12.362 --round('數字','四捨五入後保留小數點後幾位') select round(122.5255,2)--122.5300 --然後用cast('數字' as 目標型別(一共多長,小數點後保留多少位) ) --numeric基本等同於Decimal select cast(round(122.5255,2) as numeric(5,2))--這個就是將122.5300這個,保留全部是5,小數點後是2 122.53 select cast('12.3898989' as decimal(32,20))--
》12.38989890000000000000 SELECT CAST('12.56' AS decimal(10,8))--==>12.56000000 --比如下面這個 12.56,decimal全長是要保持10,小數點後要保留8個 --這裡最多是8, 因為12已經佔去2位,小數點最多是8個 SELECT CAST('12.56' AS decimal(10,8))--12.56000000
SELECT CAST('12' AS int)-->12
SELECT CAST('12.0' AS int)-->報錯,double型別的字串不能轉成int
SELECT (Round(cast('12.36' as decimal(32,2)) *
cast('1.23' as decimal(32,2)),2))--》15.2000
" * "代表 +-*/