Точная обработка десятичных чисел в JavaScript с помощью Google Closure Compiler & Library
Я 6 месяцев в проекте с использованием библиотеки закрытия Google и компилятора. Я нахожу, что хотел бы более точную обработку десятичных чисел (обработку некоторых простых валютных расчетов), одной из распространенных проблем, с которыми я сталкиваюсь, являются такие вещи, как:
(1.005).toFixed(2) != 1.01
Я не нашел соответствующих модулей в документации библиотеки закрытия, я попробовал библиотеку BigDecial ( https://github.com/dtrebbien/BigDecimal.js), а также bignumber.js ( https://github.com/MikeMcl/bignumber.js) и связанных проектов. Все они работают хорошо, но не работают при компиляции с --compilation_level=ADVANCED_OPTIMIZATIONS
(у них нет аннотаций, требуемых компилятором).
- Есть ли в библиотеке Google Closure метод обработки десятичных знаков произвольной точности или, по крайней мере, более точных чисел с плавающей запятой?
- Есть ли внешняя библиотека, которая будет работать с компилятором замыкания с advanced_optimizations?
- Существует ли эффективный во времени способ адаптации одной из перечисленных выше библиотек для работы с компилятором и advanced_optimizations?
- Есть ли другие решения, которые я, возможно, не рассмотрел для более точных чисел с плавающей точкой в JavaScript?