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
" * "代表 +-*/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM