Крупномасштабные десятичные вычисления в SQL - PullRequest
0 голосов
/ 15 марта 2019

Я застрял на каком-то математическом действии, которое я выполняю в SQL Server 2016 Enterprise.

Мне нужно вычислить это выражение:

(4.384 / 4.2989 * 100) * 98.8251017928029 / 100

В SQL я получаю результат 100.78141988869389772850690000

Но когда я вычисляю это выражение в MS Excel, я получаю: 100.7814199585120000

Поскольку эти результаты являются индексом потребительских цен, числа после десятичной запятой имеют значение.

Итак, мой вопрос: какой результат верен? SQL Server или Excel.

PS. Я обновил свой вопрос. Вот dbfiddle

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

На самом деле, при создании DbFiddle я обнаружил ошибки в приведении.Поэтому, когда ошибки были исправлены, результат теперь почти такой же, как в Excel.Есть небольшая разница в результатах, но разница в моих потребностях по шкале

0 голосов
/ 15 марта 2019

Я нашел такую ​​же проблему здесь: Неправильный расчет в SQL-Server Я также попробовал вычисления с Java, и это показывает, что результат Excel является более точным. Вы должны использовать десятичную в расчете с использованием sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...