SQL SERVER四舍五入你除了用ROUND還有其他方法嗎?


引言

      今天和測試溝通一個百分比計算方式時遇到一個問題, 我在存儲過程里用到了強轉CAST(32.678 AS DECIMAL(5,1))  我認為該方式只會保留一位小數,我給測試的回復是我並沒有用到四舍五入函數,數據也沒有四舍五入,而測試說他們自己驗證后覺的數據是經過四舍五入了的。 想到這里於是我再試了試存儲過程的每個計算點,才發現了這個問題。

 

 

ROUND

     那么用到四舍五入並且保留小數點時我們肯定會首選ROUND函數,  如果字段的數據類型是decimal(18,10)時那么四舍五入后還會有很多0出現。

 

CAST和CONVERT

    其實我使用強轉時並沒有打算四舍五入結果,只是單純為了得到符合我要求的數據,今天才發現這兩個強轉也會四舍五入結果,也就是說下面三個語句將會返回相同的結果值

 

select ROUND(32.678,1)    --32.700

select CAST(32.678 as DECIMAL(5,1))  --32.7

select convert(NUMERIC(5,1),32.678)  --32.7

 


免責聲明!

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



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