2013-10-05 6 views
9

У меня есть несколько значений, которые поступают с сервера, который необходимо сохранить в моей базе данных. Я не эксперт по MySQL, но я понимаю это достаточно хорошо для базового ввода/вывода. Сейчас я пытаюсь выяснить, какую длину я должен использовать при хранении следующих десятичных знаков.MySQL: Размер десятичного типа данных

tax_rate [DECIMAL ?,?]: value(0.014840000000) 
units [DECIMAL ?,?]: value(1.00) 
initial_charge [DECIMAL ?,?]: value(2.5110) 
charge [DECIMAL ?,?]: value(2.8967) 
link_tax [DECIMAL ?,?]: value(0.385652) 
exempt [DECIMAL ?,?]: value(0.0000) 
tax [DECIMAL ?,?]: value(0.042986) 
base_price [DECIMAL ?,?]: value(41.8500) 

Я надеюсь, что кто-то может предложить правильную длину данных мне нужно использовать для этих ценностей, а также объяснить, почему они выбрали значение. Или, может быть, ссылку на статью, в которой объясняются децималы MySQL в глубину.

Любая помощь будет оценена по достоинству.

Спасибо!

------- Редактировать --------

После прочтения MySQL документы, это то, что я решить следующие десятичные длины, чтобы быть:

tax_rate [DECIMAL 15,12]: value(0.014840000000) ? max(999.999999999999) 
units [DECIMAL 6,2]: value(1.00) ? max(9999.99) 
initial_charge [DECIMAL 9,4]: value(2.5110) ? max(99999.9999) 
charge [DECIMAL 9,4]: value(2.8967) ? max(99999.9999) 
link_tax [DECIMAL 9,6]: value(0.385652) ? max(999.999999) 
exempt [DECIMAL 9,4]: value(0.0000) ? max(9999.9999) 
tax [DECIMAL 10,6]: value(0.042986) ? max(999999.999999) 
base_price [DECIMAL 10,4]: value(41.8500) ? max(999999.9999) 
+3

В глубине: официальные документы по адресу http://dev.mysql.com/doc/refman/5.0/en/fixed-point-types.html – Amadan

ответ

22

От MySQL:

в декларации синтаксиса для столбца DECIMAL десятичный (M, D). Диапазоны значений для аргументов в MySQL 5.1 следующие:

M - максимальное количество цифр (точность). Он имеет диапазон от 1 до 65. (Старые версии MySQL разрешены в диапазоне от 1 до 254.)

D это число цифр справа от десятичной запятой (Шкала ). Он имеет диапазон от 0 до 30 и не должно быть больше, чем М.

Рассмотрим этот номер: 123456789,12345 здесь M является 14 и D является 5 затем на основе этого принципа можно установить DECIMALS (M, D) для каждый столбец основан на их ожидаемых максимальных значениях.

+1

Удивительный. Это в основном суммирует его ... Я отредактирую свое сообщение, чтобы отразить правильные значения. – user0000001

+0

, поэтому десятичная точка НЕ ​​включена в M - правильно? – zonabi

Смежные вопросы