[英]MySQL - Storing numbers, greater than 1, with a large number of decimal places
我需要使用具有許多小數位的准確數字。 如果我使用decimal
類型(因為float不夠精確,無法存儲此類數字),我可以得到類似0.003352466
並且可以准確地保留它。 但是,如果我將該數字設置為大於1,將無法存儲1.003352466
。
如何將兩種類型的數字存儲在一列中?
就像,如果一行的值是0.003352466
但是下一行需要存儲1.003352466
,我該怎么做? 我一直無法弄清楚。
僅供參考,我最初嘗試過DECIMAL(10,10),並且遭受了與上述相同的失敗。
編輯:
我嘗試指定DECIMAL(2,10)
但是失敗,因為左側的數字必須等於或大於右側的數字。 所以我嘗試了DECIMAL(10,10)
, DECIMAL(10,10)
簡直無法寫入數據庫。 正如我上面提到的,它將讓我輸入0.003352466
但不能輸入1.003352466
解決方案...使第一個數字大於第二個數字,它可以工作!
如前所述, DECIMAL(10,10)
將無法寫入,但DECIMAL(10,9)
將成功。 去搞清楚。
您可能有錯誤的表定義(是否願意顯示?)。 從手冊 :
DECIMAL列的聲明語法為DECIMAL(M,D)。 MySQL 5.1中參數的值范圍如下:
M是最大位數(精度)。 它的范圍是1到65。(較早版本的MySQL允許范圍是1到254。)
D是小數點右邊的位數(標度)。 范圍是0到30,並且不得大於M。
因此,在這種情況下, DECIMAL(11,9)
將起作用,並根據需要進行更改。
提供字段聲明的精度。
DECIMAL(N, M)
表示“總共N
位,小數位數為M
”。
說, DECIMAL(10, 2)
將允許您存儲從0.00
到±99999999.99
數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.