Добрый вечер, у меня почему то выводит не верный результат запрос: SELECT SUM(`pole1` + `pole2`) FROM `table`.
Тип полей pole1 и pole2 = int
По записям в таблице (см.скрин) результат должен быть = 1, а запрос выводит 0.9999999925494194
0.36545 + 0.36545 + 0.0391 + 0.23 = 1
1. Sanek_OS9 - 25 Февраля, 2017 - 18:41:27 - перейти к сообщению
2. Мелкий - 25 Февраля, 2017 - 19:10:58 - перейти к сообщению
Sanek_OS9 пишет:
Тип полей pole1 и pole2 = int
Sanek_OS9 пишет:
По записям в таблице
Одно из утверждений ложно.
Судя по поведению агрегатной функции - тип данных float. Результат в пределах нормального отклонения
3. Sanek_OS9 - 25 Февраля, 2017 - 19:57:30 - перейти к сообщению
Мелкий пишет:
Одно из утверждений ложно.
Судя по поведению агрегатной функции - тип данных float. Результат в пределах нормального отклонения
Sanek_OS9 пишет:
Тип полей pole1 и pole2 = int
Sanek_OS9 пишет:
По записям в таблице
Одно из утверждений ложно.
Судя по поведению агрегатной функции - тип данных float. Результат в пределах нормального отклонения
Извиняюсь, действительно ведь float, а отклонение никак не убрать?
4. Мелкий - 25 Февраля, 2017 - 20:19:06 - перейти к сообщению
float - приблизительное значение по своему определению ieee 754.
Если нужна точная математика - вам необходим формат фиксированной запятой, numeric (так же известный как decimal)
Если нужна точная математика - вам необходим формат фиксированной запятой, numeric (так же известный как decimal)
5. Sanek_OS9 - 26 Февраля, 2017 - 00:33:54 - перейти к сообщению
Мелкий пишет:
float - приблизительное значение по своему определению ieee 754.
Если нужна точная математика - вам необходим формат фиксированной запятой, numeric (так же известный как decimal)
Если нужна точная математика - вам необходим формат фиксированной запятой, numeric (так же известный как decimal)
спасибо