Помимо использования длинных длин, вы также можете:
Используйте упакованную десятичную библиотеку.
Вы можете использовать логарифмическое (или геометрическое и т. Д.) Масштабирование в стандартном int или long.
Используйте структуру целых чисел, представляющих значения и экспоненты, и выполняйте математические вычисления с плавающей запятой вручную (или с хорошей библиотекой).
Я использовал все три метода, у каждого из них есть свои взлеты и падения. Упакованный десятичный знак самый медленный и самый точный. Логарифмическое масштабирование является самым быстрым и простым в реализации и наименее точным. Воспроизведение с плавающей запятой через целые числа является промежуточным по производительности, по сути, таким же по точности, как и «реальная» с плавающей запятой, и сложнее всего реализовать.
Все 3 медленнее, чем использование аппаратного обеспечения с плавающей запятой, при условии, что ваше оборудование имеет плавающую точку!