如何阻止 MySQL 小數字段被舍入?


你可以使用 DECIMAL() 函式來阻止小數舍入。以下是小數舍入的示例。以我們的示例為例,我們首先建立一個示例表

mysql> create table stopRoundingDemo
   -> (
   -> Amount DECIMAL(7)
   -> );
Query OK, 0 rows affected (0.67 sec)

使用插入命令在表中插入一些記錄。查詢如下:-

mysql> insert into stopRoundingDemo values(7836.783);
Query OK, 1 row affected, 1 warning (0.43 sec)
mysql> insert into stopRoundingDemo values(1737.67);
Query OK, 1 row affected, 1 warning (0.23 sec)
mysql> insert into stopRoundingDemo values(110.50);
Query OK, 1 row affected, 1 warning (0.33 sec)

使用選擇語句顯示錶中的所有記錄。查詢如下:-

mysql> select *from stopRoundingDemo;

輸出如下

+--------+
| Amount |
+--------+
| 7837   |
| 1738   |
| 111    |
+--------+
3 rows in set (0.08 sec)

在上面的示例輸出中,小數被舍入。

現在,我們將看到如何阻止小數舍入。為此,我們首先建立一個新表,並設定 DECIMAL 型別,這樣就可以在不捨入的情況下得到結果

mysql> create table stopRoundingDemo2
   -> (
   -> Amount DECIMAL(10,4)
   -> );
Query OK, 0 rows affected (0.81 sec)

使用插入命令在表中插入一些記錄。查詢如下:-

mysql> insert into stopRoundingDemo2 values(7836.783);
Query OK, 1 row affected (0.14 sec)
mysql> insert into stopRoundingDemo2 values(1737.67);
Query OK, 1 row affected (0.14 sec)
mysql> insert into stopRoundingDemo2 values(110.50);
Query OK, 1 row affected (0.16 sec)

使用選擇語句顯示錶中的所有記錄。查詢如下:-

mysql> select *from stopRoundingDemo2;

輸出如下

+-----------+
| Amount    |
+-----------+
| 7836.7830 |
| 1737.6700 |
| 110.5000  |
+-----------+
3 rows in set (0.00 sec)

更新時間:2019 年 7 月 30 日

503 次瀏覽

開啟您的 職業生涯

完成課程獲得認證

開始使用
廣告