Специальная арифметика в оракуле SQL - PullRequest
0 голосов
/ 01 октября 2018

Например - номер столбца ABC (12,4).

Мое значение равно 2,7487, а если разделить на 2, это 1,3744 (с округлением до 4).

1.3744 + 1.3744 = 2.7488

Как мнеполучить результат - 2.7487 как оригинал.

1 Ответ

0 голосов
/ 02 октября 2018

Вы не можете.Это нормальное поведение конечной арифметики (целое и с плавающей запятой).

Даже если вы добавите большое количество десятичных знаков, вы все равно потеряете точность.

Это типичный случай округлениясчета-фактуры.Например, у вас есть счет на общую сумму 100,00 долларов, который нужно разделить на 3 пункта.Вы получаете три предмета $100.00 / 3.0 каждый.То есть:

  • 33,33 $ Позиция № 1.
  • 33,33 $ Позиция № 2.
  • $ 33,33 Позиция № 3.
  • Всего на... $ 99,99!(не те 100,00 долл., которые вы ожидали).

Известное решение для возрастов в настоящее время состоит в том, чтобы отрегулировать одно или несколько значений, чтобы добавить или уменьшить их на один цент.В этом случае вы могли бы добавить 1 цент к последнему предмету, чтобы получить:

  • 33,33 доллара за № 1.
  • 33,33 $ за пункт № 2.
  • $ 33,34 за элемент# 3.
  • Всего на ... $ 100,00!Идеальный.

Существует несколько возможных комбинаций (все действительные) для настройки этих значений.Вот как это делается в бухгалтерском учете.

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