Sql中的小數點和保留位數
阿新 • • 發佈:2020-08-07
直接上程式碼
首先明確:
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
" * "代表 +-*/