[英]How do I stop a MySQL decimal field from being rounded?
我在MySQL中有一個表,其中包含十進制,長度為9,無符號的字段。 我用它來代價。
在我插入數據並查詢它之后,它全部被舍入並且小數已被刪除。
我很困惑為什么。
疑難解答?
主持人 :web.com
phpMyAdmin版本 :2.11.10.1
MySQL客戶端版本 :5.0.95
MySQL中的十進制類型有兩個調整旋鈕:精度和比例。 您省略了比例,因此默認為0。
DECIMAL列的聲明語法是DECIMAL(M,D)。 MySQL 5.1中參數的值范圍如下:
M是最大位數(精度)。 它的范圍是1到65.(舊版本的MySQL允許范圍為1到254)。
D是小數點右邊的位數(刻度)。 它的范圍為0到30,且不得大於M.
mysql> create table test01 (field01 decimal(9));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test01 (field01) values (123.456);
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select * from test01;
+---------+
| field01 |
+---------+
| 123 |
+---------+
1 row in set (0.00 sec)
mysql> create table test02 (field01 decimal(9, 4));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test02 (field01) values (123.456);
Query OK, 1 row affected (0.01 sec)
mysql> select * from test02;
+----------+
| field01 |
+----------+
| 123.4560 |
+----------+
1 row in set (0.00 sec)
我有同樣的問題。 如果輸入並假設它為0,則PHPMyAdmin忽略小數位。使用alter table query更改它。 ALTER TABLE tablename
CHANGE rate
rate
DECIMAL(30,3)UNSIGNED NOT NULL;
舍入完成,因為您可能已將其數據類型設置為int
。
將其數據類型更改為double
或Float
。
這將幫助你。
編輯
如果你有數據類型decimal
給它的大小像這樣編輯。
create table numbers (a decimal(10,2));
舍入正在發生,因為您需要在類型聲明中聲明精度
create table test01 (field01 decimal(9,2));
在PHP / MySQLAdmin中,轉到表格的結構,點擊更改,然后將財務數據(美元)的長度(默認為10,0)設置為10,2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.