SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.02.2011 22:13:32

tan4ik
Участник
Зарегистрирован: 20.11.2009
Сообщений: 7

Тип FLOAT проблемы использования

Здравствуйте!

Возникла следующая печальная ситуация. В нескольких таблицах есть столбцы типа FLOAT, которые содержат 2 знака после точки, когда делаем SUM по данным столбцам получаем 6-7 знаков после точки (если в данном столбце одно число с 2 знаками после запятой, например, 2.39, то сумма будет 102.3900001). Мне непонятно почему всё происходит именно так, откуда возникают эти дополнительные знаки после точки sad Буду благодарна любым советам и пояснениям.

Неактивен

 

#2 12.02.2011 01:03:10

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Тип FLOAT проблемы использования

В столбце FLOAT не может быть двух знаков после запятой: это числа с плавающей точкой.
Из-за такого формата хранения, нельзя представить число
абсолютно точно (т.е. есть какие-то ошибки округления в младших разрядах,
которые Вы не видите). При суммировании ошибки округления складываются,
влияя на результат вычисления.

Самое простое в данном случае — использовать ROUND().

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson