числа более 5-ти цифр перед точкой округляются

forest

Новичок
числа более 5-ти цифр перед точкой округляются

Здравствуйте у меня беда.
Всё вроде ок.
но как только становиться 6 цифр перед запятой то они округляются- и сохранябтся в базу как округлённые.
например 546341.3 сохраняется как 546341

а если числа ещё больше то сохраняются таким образом 4.25139e+006.

пожалуйста подскажите как с этим бороться -в первые с этим сталкиваюсь.
 

forest

Новичок
ок. огромное спасибо.

тока как мне задать decimal чтоб не испортить данные. т.к. там храняться либое количество знаков после и до запятой.
 

html_coder

Новичок
Любое?

Ну ведь точно можно узнать максимальное до запятой и максимальное после запятой?

И вот именно их и задать при описании типа.

Я думаю что так. ;)
 

forest

Новичок
ну например щас это ХХХХХХХ.ХХХ а если человек введёт Х.ХХХХ то база начнёт ругаться.

а если человек ввёл данные типа 3.2 то при просмотре увидет 3.200?
с float вообще всё замечательно было. а это только в Mysql так? просто в MSSQL что то такого не наблюдалось.
 

svetasmirnova

маленький монстрик
forest
>6 цифр перед запятой

Вывод SHOW CREATE TABLE приведи, пожалуйста.
 

forest

Новичок
CREATE TABLE `abc`
(`A` int(10) unsigned NOT NULL default '0',
`B` varchar(150) collate utf8_unicode_ci NOT NULL,
`C` varchar(20) collate utf8_unicode_ci NOT NULL,
`D` float NOT NULL,
`E` decimal(10,2) NOT NULL,
`F` varchar(20) collate utf8_unicode_ci NOT NULL default 'a1',
PRIMARY KEY USING BTREE (`B`,`A`,`F`)) ENGINE=InnoDB
DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci'


вот так было с float.
 

svetasmirnova

маленький монстрик
forest

Спасибо.

>с float вообще всё замечательно было. а это только в Mysql так? просто в MSSQL что то такого не наблюдалось.

Почитай здесь: http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html

Коротко MySQL type FLOAT соответствует типу MSSQL REAL и MySQL type DOUBLE соответствует типу MSSQL FLOAT
 

forest

Новичок
огромное спасибо. теперь всё ясно.

спасибо всем огромное за отзывчивость.
:)
 
Сверху