1. 程式人生 > >mysql 字串轉小數

mysql 字串轉小數

 在日常開發中常常會遇到字串轉小數的需求,下面我們來介紹一下mysql的兩個滿足此要求的函式

CAST(expr AS type)

CONVERT(expr,type)

兩個函式的使用

mysql> select  convert(39,decimal(18,2)); 
+---------------------------+
| convert(39,decimal(18,2)) |
+---------------------------+
|                     39.00 |
+---------------------------+
1 row in set (0.00 sec)

mysql> select CAST(39  AS DECIMAL(18,2));
+----------------------------+
| CAST(39  AS DECIMAL(18,2)) |
+----------------------------+
|                      39.00 |
+----------------------------+
1 row in set (0.00 sec)
 

欄位相乘保留兩位小數:

mysql> select  convert(39.00*9100,decimal(18,2)); 
+-----------------------------------+
| convert(39.00*9100,decimal(18,2)) |
+-----------------------------------+
|                         354900.00 |
+-----------------------------------+
1 row in set (0.00 sec)

mysql> select CAST(39.00* 9100 AS DECIMAL(18,2));
+------------------------------------+
| CAST(39.00* 9100 AS DECIMAL(18,2)) |
+------------------------------------+
|                          354900.00 |
+------------------------------------+
1 row in set (0.00 sec)
在navigate軟體發現一個比較有趣的現象:

當設定 decimal精度的長度為 13、14這兩個數字時,實際顯示的結果是不一樣的。

也就是小於等於13 顯示的是不保留小數位,大於等於14則顯示保留小數位。這個大家在開發時需要留意