Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не правильный подсчет SELECT SUM()

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не правильный подсчет SELECT SUM()
Sanek_OS9
Отправлено: 25 Февраля, 2017 - 18:41:27
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Окт. 2012  
Откуда: Украина


Помог: 0 раз(а)




Добрый вечер, у меня почему то выводит не верный результат запрос: SELECT SUM(`pole1` + `pole2`) FROM `table`.
Тип полей pole1 и pole2 = int
По записям в таблице (см.скрин) результат должен быть = 1, а запрос выводит 0.9999999925494194
0.36545 + 0.36545 + 0.0391 + 0.23 = 1
Прикреплено изображение
2017-02-25_183921.png
 
 Top
Мелкий Супермодератор
Отправлено: 25 Февраля, 2017 - 19:10:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Sanek_OS9 пишет:
Тип полей pole1 и pole2 = int

Sanek_OS9 пишет:
По записям в таблице

Одно из утверждений ложно.

Судя по поведению агрегатной функции - тип данных float. Результат в пределах нормального отклонения


-----
PostgreSQL DBA
 
 Top
Sanek_OS9
Отправлено: 25 Февраля, 2017 - 19:57:30
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Окт. 2012  
Откуда: Украина


Помог: 0 раз(а)




Мелкий пишет:
Sanek_OS9 пишет:
Тип полей pole1 и pole2 = int

Sanek_OS9 пишет:
По записям в таблице

Одно из утверждений ложно.

Судя по поведению агрегатной функции - тип данных float. Результат в пределах нормального отклонения


Извиняюсь, действительно ведь float, а отклонение никак не убрать?
 
 Top
Мелкий Супермодератор
Отправлено: 25 Февраля, 2017 - 20:19:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




float - приблизительное значение по своему определению ieee 754.
Если нужна точная математика - вам необходим формат фиксированной запятой, numeric (так же известный как decimal)


-----
PostgreSQL DBA
 
 Top
Sanek_OS9
Отправлено: 26 Февраля, 2017 - 00:33:54
Post Id



Гость


Покинул форум
Сообщений всего: 115
Дата рег-ции: Окт. 2012  
Откуда: Украина


Помог: 0 раз(а)




Мелкий пишет:
float - приблизительное значение по своему определению ieee 754.
Если нужна точная математика - вам необходим формат фиксированной запятой, numeric (так же известный как decimal)

спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB