數據庫中保留兩位小數


引入:

         本人菜鳥,今天遇到一個問題,把數據庫中的一列值保留兩位小數查出來;

    在網上搜索了很多關於數據庫中保留兩位小數的文章,可惜總是不能實現,后來自己總結了下,

    才發現原來很簡單,是自己沒有理解夠;

    在這之前先介紹下幾個函數:

1:round()這是四舍五入函數,用於把數值字段舍入為指定的小數位數。

    例如:   SELECT round(column_name,decimals) FROM table_name;

   網上說這個函數可以保留 四舍五入兩位小數,可是我發現SELECT ROUND(19.434,2)出來的是19.430而不是19.43,

   可能是由於不能數據庫的關系,竟然講到這個函數,我就對這個函數解釋下總結了下網上一些博客對它的了解

   round 有兩個重載,一個是兩個參數,一個是三個參數:

   1.帶有兩個參數.每二個參數是小數點的左邊第幾位或右邊第幾位,分別用正負表示.左邊為負,右邊為負.為四舍五入.

    SELECT round(567.45676,-1)  570.00000(-1 表示四舍五入到右邊第1位,其中,個位為第0位,四舍五入后舍棄的部分顯示為0)

    SELECT round(567.45676,2)  567.46000

    SELECT round(20,-3)           0

   2.帶三個參數.第二個參數同上.第三個參數有兩種可能,一種是取0為四舍五入.另一種是正負值,則為舍去

    SELECT  round(567.45676,2,0)  567.46000(跟兩個參數意義的結果,可以把兩個參數的當為三位參數的特例為第三參數0)

    SELECT  round(567.45676,2,3)   567.45000(第三個參數不為0,所以為舍去,舍棄兩位以后的數字,變為567.45舍棄部位為0所以是567.45000)

    SELECT  round(567.45676,2,3)   567.45000

 2: cast(value as type)函數,其實要保留兩位小數,只需要把用SELECT CAST(19.4667 AS decimal(9,2))就可以這樣出來是19.47要是不想四舍五入的話,

    可以 先用round函數處理下SELECT cast(round(19.4667,2,3) as decimal(9,2)) 19.46當round函數第三個參數不為0就可以;

 3:convert(type,value)函數擁有和cast一樣的功能SELECT convert( decimal(9,2),round(19.4667,2,3) ) 19.46


免責聲明!

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



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