sql с вопросом округления

63
6

У меня проблема с sql (математика).

У меня есть общая сумма, подлежащая оплате поставщику, которая составляет 33.333, и мне нужно разделить сумму с двумя пользователями. Поэтому я выбрал

select (16.666 * 2) from dual 33.332, который дает мне 33.332 что на .1 меньше, чем сумма, которую я должен дать.

Если у меня есть этот sql select (16.667 * 2) from dual, то он дает мне 33.334 что .1 больше 33.333.

Как я могу разделить общую сумму, которую я мог бы распределить поровну?

благодаря

спросил(а) 2021-01-19T18:50:57+03:00 6 месяцев назад
1
Решение
63

Я не уверен, откуда вы выполняете свой запрос, но он работает здесь (SQLDeveloper, 10g):

SELECT (33.333 / 2) FROM dual;
16,6665

SELECT (16.6665 * 2) FROM dual;
33,333

ответил(а) 2021-01-19T18:50:57+03:00 6 месяцев назад
64

Сделайте это наоборот:


select 33.333/2

ответил(а) 2021-01-19T18:50:57+03:00 6 месяцев назад
46

Скорее всего, вы работаете с неправильным типом столбца. Вы должны использовать DECIMAL вместо FLOAT.

Вот хорошее резюме: http://lists.mysql.com/mysql/189592

В зависимости от стандарта SQL, который вы используете, этот тип может быть MONEY, DECIMAL или NUMBER.

ответил(а) 2021-01-19T18:50:57+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема