Как быть параноику в JS, если дело касается учета денежных единиц,
К примеру в других языках можно считать интом в копейках.
На JS как я понимаю все числа в дабл флоате, и есть метод Number.isInteger()
Как вы работаете с денежными единицами, с которыми в других языках вам бы руки за флоат поотбивали?
Kovalsky, дабл флоат это и есть проблема, если дело касается подсчёта денег, а не рюшечек и няшечек UI. К примеру, в одном из банков, при попытке осуществить транзакцию на несуществующий счёт, обратно возвращалось максимальное значение, экспертная комиссия не долго искала причину, оказывается был задействован тип данных float
Mishka_Sev, не, флоат это не проблема, а её причина. Так в чем конкретно проблема? Их может быть много, все мы знаем o IEEE 754, поэтому я и говорю приведите какой-нибудь пример где это может быть проблемой. К тому же на SO есть пара топиков об этом
Kovalsky, у меня нет желания даже в корзине на сайте использовать float, но раз JS других возможностей для работы с числами не предоставляет, то как выкручиваться, чтобы быть уверенным, что всё идёт правильно при подсчете миллионов копеек.
Вся чувствительная математика в любом случае должна быть (продублирована) на сервере, а клиент и так обойдётся.
Если прям нужно, то можно использовать math.js или любую иную подобную либу. Либо вручную нафигачить нужные вычисления с помощью BigInt и\или TypedArray.