Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как ввести число больше 100 000 000 ?
 
 автор: Duran   (10.03.2006 в 11:22)   письмо автору
 
 

Поле имеет формат decimal(9,2) т.е. максимальное число ввода 999 999 999,99
Но при вводе скажем 200 000 000, в базе оказывается только 99 999 999,99.
Как победить ?

   
 
 автор: Shorr Kan   (10.03.2006 в 11:25)   письмо автору
 
   для: Duran   (10.03.2006 в 11:22)
 

Эээ.... формат изменить? decimal(15,2) , например

   
 
 автор: Duran   (10.03.2006 в 11:28)   письмо автору
 
   для: Shorr Kan   (10.03.2006 в 11:25)
 

Это понятно.
Почему при аргументе 9 вводится тока 8 знакомест ? или одна позиция на знак +/- ?
В мануале нифига

   
 
 автор: cheops   (10.03.2006 в 11:36)   письмо автору
 
   для: Duran   (10.03.2006 в 11:28)
 

Да, один знак отводится под минус.

   
 
 автор: Trianon   (10.03.2006 в 11:37)   письмо автору
 
   для: Duran   (10.03.2006 в 11:28)
 

В мануале есть всё. В нем, в частности, можно прочесть, что первое число в спецификации типа объявляет общее количество цифр, а вовсе не количество цифр до десятичной точки.

   
 
 автор: cheops   (10.03.2006 в 11:45)   письмо автору
 
   для: Trianon   (10.03.2006 в 11:37)
 

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

   
 
 автор: Trianon   (10.03.2006 в 11:46)   письмо автору
 
   для: cheops   (10.03.2006 в 11:45)
 

Запас имеется, конечно. Да они (авторы мануала) и не скрывают:
Типы данных NUMERIC и DECIMAL реализованы в MySQL как один и тот же тип - это разрешается стандартом SQL92. Они используются для величин, для которых важно сохранить повышенную точность, например для денежных данных. Требуемая точность данных и масштаб могут задаваться (и обычно задаются) при объявлении столбца данных одного из этих типов, например:

salary DECIMAL(5,2)

В этом примере - 5 (точность) представляет собой общее количество значащих десятичных знаков, с которыми будет храниться данная величина, а цифра 2 (масштаб) задает количество десятичных знаков после запятой. Следовательно, в этом случае интервал величин, которые могут храниться в столбце salary, составляет от -99,99 до 99,99 (в действительности для данного столбца MySQL обеспечивает возможность хранения чисел вплоть до 999,99, поскольку можно не хранить знак для положительных чисел).

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования