說明:剛開始用的round(值1/值2*100,1) 結果沒出效果,才搜到decimal函數
在工作中會遇到計算小數而且需要顯現出小數末尾的0,我們會用到DECIMAL這個函數,這是一個函數非常強悍:具體用法DECIMAL(P,D);
在上面的語法中:
P是表示有效數字數的精度。 P范圍為1〜65。
D是表示小數點后的位數。 D的范圍是0~30。MySQL要求D小於或等於(<=)P。
DECIMAL(P,D)表示列可以存儲D位小數的P位數。十進制列的實際范圍取決於精度和刻度。
與INT數據類型一樣,DECIMAL類型也具有UNSIGNED和ZEROFILL屬性。 如果使用UNSIGNED屬性,則DECIMAL UNSIGNED的列將不接受負值。
如果使用ZEROFILL,MySQL將把顯示值填充到0以顯示由列定義指定的寬度。 另外,如果我們對DECIMAL列使用ZERO FILL,MySQL將自動將UNSIGNED屬性添加到列。
測試案例:
數據庫的表結構
第一種計算方式:
select convert(t/100,decimal(15,2)) as money from test
select convert(t/100,decimal(10,2)) as money from test
第二種計算方式
返回數字X,截斷到D小數位。 如果D為0,結果沒有小數點或小數部分。 D是負數,導致值X的小數點左邊的D數字變為零。(簡單說就是沒有四舍五入)
SELECT TRUNCATE(t/100,2) as g from test
select convert(4545.1366,decimal(10,3));
原文鏈接:https://blog.csdn.net/JGnewbie/article/details/81571333