直接上代碼
首先明確:
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
" * "代表 +-*/
