Я ищу инфраструктуру Java, которая реализует общие математические операции для класса Number (игнорируя атомарные подклассы), с такими методами, как
compare(Number a, Number b);
add(Number a, Number b);
и следующее правило приведения числового типа:
Если какой-либо из аргументов является десятичным, то результат операции будет десятичным,
и если все аргументы являются целыми числами, то результатом операции будет целое число.
Цель этого:
У меня есть математический вспомогательный класс, который работает с десятичными и целыми числами. Некоторые операции выполняют много итераций, что приводит к снижению точности, если число является десятичным, но потери точности можно избежать, если операция воздействует на целочисленные аргументы (поскольку нет операций деления). Поэтому я пытаюсь уменьшить потерю точности всякий раз, когда это возможно (для случаев, когда все аргументы целочисленные), используя математическую среду, которая будет вычислять в целочисленной области, когда это возможно.
Другой вопрос - может быть, я ошибаюсь, и при операциях mul / add / sub для десятичных чисел невозможна потеря точности?