1. 程式人生 > >mysql之處理金錢小數點後的多余0

mysql之處理金錢小數點後的多余0

當我 需要 例如 通過 返回 除了 指定 獲取 實現

問題產生原因:我們在做基金項目 產生大量的金錢 在GP首頁展示首頁信息的時候要求去除多余的0 由於我們在數據庫設計的時候查詢返回數據 例如18.100000 這種形式 而我們需要將多余的0去除掉 展現形式18.1這種形式展示

解決方案:

剛開始的時候我看見采用cast()函數 和 convert() 函數進行轉換 真正的實現方式也是采用這兩種函數

錯誤使用方式:

采用select cast(90.090008700 as decimal(9,3)) 這種方式也可以去除小數點後面的0 執行結果為90.09 後面的0.000008700被去除了 而且這中使用方式還會四舍五入

而且在我們查詢回來的數據我們如果不進行強制位數限定的話 我們無法知道準確的來指定decimal(參數1,參數2) 參數二小數的位數 所以這種方式不足以解決這個問題。

正確的解決方式:

select 0+cast(90.09008700 as char ) 輸出結果 90.090087

或者

select 0+CONVERT(‘90.09008700‘ , CHAR) 輸出結果:90.090087

通過以上兩種方式可以獲取到我想要的數據 同時當我們在使用查詢時候有時候為了避免返回數據為null 我們可以用ifnull(參數1,參數2) 參數1值 參數2當參數是空的時候可以指定我們想返回的值是什麽比我我們常用 ifnull(count,0) 這種使用方式 如果count是空 返回0

mysql之處理金錢小數點後的多余0