- API
- Типы данных
- Деньги
- Введение [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
- Работа с типами
- Глобальный контекст и изоляция
- Работа с приложениями
- Массовые действия с элементами приложения
- Работа с внешними сервисами
- Скрипты в виджетах
- Веб компоненты
- Права доступа
- Начало работы с процессами
- Начало работы с подписями
- Начало работы с предпросмотром файлов
- Начало работы с организационной структурой
- Начало работы с пользователями и группами
- Начало работы с типом данных Таблица
- Начало работы с типом данных Категория
- Динамическое вычисление типа события
- Решение типовых задач
-
API
- Типы объектов
-
Типы данных
- AccountType
- DynamicFieldType
- EmailType
- OrganisationStructureItemType
- PhoneType
- ReplacementType
- ServiceStatus
- UserStatus
- WatermarkPages
- WatermarkPosition
- AccountFieldTyped
- AccountFieldVoid
- ApplicationField
- Cell
- ClientEventField
- CookieOptions
- DatetimeFieldData
- DynamicBindingField
- DynamicBindingFields
- EnumField
- ErrorArgs
- ErrorObject
- FileField
- FloatFieldData
- GroupStatusField
- HttpResponse
- ImageField
- Language
- MailMessageAddress
- MailMessageAttachment
- MoneyFieldData
- Navigator
- Page
- ParseSpreadsheetOptions
- ParseSpreadsheetResponse
- RefItem
- ReportField
- ReportRef
- Role
- RoleField
- Row
- ServiceStatusInfo
- StaticApplicationFieldData
- StatusField
- TAccount
- TClientEvent
- TDate
- TDatetime
- TDuration
- TEmail
- TEnum
- TFullName
- TMoney
- TPhone
- TReport
- TStatus
- TTable
- TTime
- TTimezone
- TTimezones
- TableField
- UserField
- UserFieldData
- ValidationResult
- Watermark
- WidgetRefWithValues
- ReplacementTypeEnumBase
- RoleType
- TApplication
- TBoolean
- TCategory
- TFile
- TFloat
- TImage
- TJSON
- TLink
- TOAuth2
- TRole
- TString
- TUser
- Глобальные константы
- Работа с приложениями
- Веб-запросы
- Права доступа
- Документооборот
- Линии
- Виджет «Код»
- Подписи
- Рабочие календари
- Интеграция с IP-телефонией
- Интеграция с сервисами рассылок
Деньги
Имеет конструкторы:
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 Deprecated
Сложение денежных значений.
Метод устарел. Используйте 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 RUB
Error — Если валюты не совпадают.
Parameters
money: TMoney<C | "XXX">
Returns TMoney<C>
asFloat
Приведение к десятичной дроби с точностью, соответствующей валюте.
const salary = new Money(101, 'RUB'); const salary2 = salary.multiply(0,001); salary2.asFloat(); // 0.1
Returns number
multiply
Умножить на число с округлением центов в нижнюю сторону.
Parameters
k: number
Returns TMoney<C>
Properties
Methods
Ваш отзыв успешно отправлен!
Спасибо за обратную связь.