Функция SUM() дает неверный результат

У меня есть одна таблица с именем trust_fund:

таблица траст_фонд

Мой запрос: $sql = "ВЫБЕРИТЕ СУММУ (доступный_баланс) КАК общий_фонд ИЗ трастовых_фондов, ГДЕ тип = 'Администратор'";

сначала он отображает 100000000, что правильно, но когда я обновляю таблицу (перевод 500 от администратора к агенту), доступный_баланс администратора становится 99 999 504, а агент становится 500.

В балансе администратора есть дополнительные 4. Я попытался перевести 500 обратно в учетную запись администратора, и учетная запись администратора стала 100000008.

Результат запроса

Я запутался, потому что таблицы показывают правильные значения, 100000000 и 0, но выполнение запроса даст 100000004.

Пожалуйста помоги

Определение таблицы

СтолбецТип
я быINT(ИИ)
жидкостьТекст
доступные средстваПлавать
адрес_кошелькаТекст
типТекст

Для меня это похоже на основную проблему с данными.

Tim Biegeleisen 23.04.2022 11:10

Пожалуйста, опубликуйте определение таблицы (текстом, а не скриншотом)

Tangentially Perpendicular 23.04.2022 11:31
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваша проблема возникает из-за того, что вы используете тип данных FLOAT для валюты.

FLOAT — плохой выбор для столбца валюты, поскольку он вызывает ошибки из-за представления и округления (см. Математика с плавающей запятой сломана?)

Используйте INT (или BIGINT), если вы работаете с целочисленными значениями. В качестве альтернативы используйте DECIMAL для хранения и работы с точными десятичными значениями.

Большое спасибо, сэр.. Это работает... Я изменил Float на Decimal, запустил запрос, и там строки показывают 100000008... Спасибо...

Mang Isko Albularyo 23.04.2022 12:54

Большое спасибо, сэр.. Это работает... Я изменил Float на Decimal, запустил запрос, и там строки показывают 100000008... Спасибо...

Mang Isko Albularyo 23.04.2022 12:54

Другие вопросы по теме