Я читал о машинописных типах чисел типа с плавающей запятой и может привести к ошибкам при использовании в финансовых программах, где числа представлены с двумя десятичными знаками. Я понимаю, что я могу использовать длинные, представляющие все в центах, но умножение валюты утомительно, потому что, например, $ 1,00 x $ 1,00 = $ 10,00, если вы не забудете поделить на 10 ^ (n * 2), где n - количество валютных факторов.
Я подумал, что, возможно, я мог бы просто использовать что-то вроде:
let result = [some floating math with dollar amounts]
let answer1 = Math.round(result * 100) / 100;
Для моего приложения, которое имеет дело с суммами в $, не превышающими, скажем, $ 100MM, кажется, что этого будет достаточно для ошибок как $2.00 x 20% x 10% != $0.04
, но я не уверен, что это сработает во всех случаях, которые могут приводить к аналогичным ошибкам, когда я выполняю много математических операций с денежными суммами в моем приложении.