當利用SQL直接將兩欄位型態為numeric(17,2)做相除後,用round取到小數點第二位,會得到
一個傻眼的數字,那就是小數點第三位開始都是為0,此時如果我們想把這些0給拿掉的話,
可以再利用轉型的方式(流失有效位數)來得到一個漂亮的數值。
以一個範例做示範
加上round函式至小數點第二位做四捨五入
將現有型態為numeric(17,2)數值轉換成float浮點數
最後將原本的數值再轉換成一numeric(17,2),保留小數點後有兩位數值
一個傻眼的數字,那就是小數點第三位開始都是為0,此時如果我們想把這些0給拿掉的話,
可以再利用轉型的方式(流失有效位數)來得到一個漂亮的數值。
以一個範例做示範
--輸出結果 3.0954931151872364 select ( (convert(numeric(17,2),19681000)-convert(numeric(17,2),19071776)) /convert(numeric(17,2),19681000) )*100
加上round函式至小數點第二位做四捨五入
--輸出結果 3.1000000000000000 select round(( (convert(numeric(17,2),19681000)-convert(numeric(17,2),19071776)) /convert(numeric(17,2),19681000) )*100,2)
將現有型態為numeric(17,2)數值轉換成float浮點數
--輸出結果 3.1 select convert(float,round(( (convert(numeric(17,2),19681000)-convert(numeric(17,2),19071776)) /convert(numeric(17,2),19681000) )*100,2))
最後將原本的數值再轉換成一numeric(17,2),保留小數點後有兩位數值
--輸出結果 3.10 select convert(numeric(17,2),convert(float,round(( (convert(numeric(17,2),19681000)-convert(numeric(17,2),19071776)) /convert(numeric(17,2),19681000) )*100,2)))
留言
張貼留言