Перед выполнением операции проверяется совпадение валют для предотвращения ошибки округления.
Если валюты различаются, операция не выполнится и будет возвращена ошибка.
Пример:
const a = new Money(100.25, 'RUB');
const b = new Money(200.75, 'RUB');
const result = a.addm(b); // 301.00 RUB
Деньги
Имеет конструкторы:
new Money(float: number): TMoney<'XXX'>; new Money<C extends CurrencyCode>(float: number, currency: C): TMoney<C>;При работе в скриптах предпочтительно использовать конструктор с указанием конкретной валюты:
const price = new Money(100.5, 'RUB');Коды валют соответствуют стандарту ISO 4217.
Значения этого типа неизменяемые, так что методы мутации возвращают обновлённое значение, не меняя исходного.
const price = new Money(100.5, 'RUB'); const total = price.multiply(count);Type parameters
C: CurrencyCode
Hierarchy
Properties
Readonly cents
Количество центов / копеек.
Readonly currency
Валюта (буквенный код по стандарту ISO 4217).
Methods
add Устарело
Сложение денежных значений.
Метод устарел. Используйте TMoney.addm.
Известные проблемы:
Результат:new Money(0.0, 'RUB') .add(new Money(49941947.50, 'RUB')) .add(new Money(70472042.00, 'RUB')) .add(new Money(24552195.08, 'RUB')) .add(new Money(19034739.10, 'RUB')) .add(new Money(17737647.61, 'RUB'))181 738 571,27, ожидаемый результат:181 738 571,29.Подробнее читайте в статье справки [«Неточные вычисления в JavaScript»] (https://elma365.com/ru/help/platform/js-imprecise-calculations.html).
Используйте TMoney.addm, который гарантирует точность и проверяет совпадение валют.
Parameters
money: TMoney<C | "XXX">
Returns TMoney<C>
addm
Сложение денежных значений с гарантией точности.
Перед выполнением операции проверяется совпадение валют для предотвращения ошибки округления. Если валюты различаются, операция не выполнится и будет возвращена ошибка.
Пример:
const a = new Money(100.25, 'RUB'); const b = new Money(200.75, 'RUB'); const result = a.addm(b); // 301.00 RUBError — Если валюты не совпадают.
Parameters
money: TMoney<C | "XXX">
Returns TMoney<C>
asFloat
Приведение к десятичной дроби с точностью, соответствующей валюте.
const salary = new Money(101, 'RUB'); const salary2 = salary.multiply(0,001); salary2.asFloat(); // 0.1Returns number
multiply
Умножить на число с округлением центов в нижнюю сторону.
Parameters
k: number
Returns TMoney<C>
Ваш отзыв успешно отправлен!
Спасибо за обратную связь.