Перейти к содержимому
Глобальный взгляд на цифровые активыГЛОБАЛЬНЫЙ ВЗГЛЯД · МЕСТНЫЙ КОНТЕКСТ
ChainView BTC866CHAIN VIEW
Обучение

Decimals токена: целое число и отображаемая сумма

Проверяем единицу измерения до преобразования суммы для договора или API.

Читать на языкеРусский简体中文繁體中文English한국어العربيةEspañol (México)Tiếng Việtไทย
Decimals токена: целое число и отображаемая сумма

Оригинальная тематическая иллюстрация: Оригинальная тематическая схема ChainView BTC866 · ChainView BTC866 Editorial · CC BY 4.0

Где хранится количество

Многие договоры записывают остаток целым числом, а кошелёк делит его на десять в степени decimals. При шести разрядах миллион исходных единиц отображается как один токен. Это не определяет цену и качество актива. Разные договоры могут использовать разные настройки, а необязательные сведения могут отсутствовать. Проверяйте сеть и адрес, не наследуя разрядность только от совпадающего тикера.

Два направления преобразования

Уточните, ожидает ли поле API человеческое количество или исходный integer. Повторное умножение уже преобразованной суммы вызывает крупную ошибку. Сохраните название единицы рядом со значением. Количество меньше минимальной доли нельзя представить, поэтому нужны правила округления и отказа. Биржевой минимум ввода может превышать минимальную долю договора и должен проверяться отдельно.

Точные вычисления

Обычная арифметика с плавающей точкой не всегда точно представляет десятичные дроби. Для больших остатков и мелких долей используйте целые либо точный десятичный тип. Не передавайте разделители тысяч, научную запись и местную запятую без проверки. Отсекайте отрицательные значения и лишние разряды. Обратное преобразование в исходный integer должно возвращать начальное число без скрытой потери.

Практический контроль

В учебном токене с двумя разрядами сумма 12,34 соответствует 1234 исходным единицам. Перед подписью покажите оба значения и проверьте расходы в отдельном активе. После исполнения сопоставьте квитанцию и изменение остатков. При миграции на новый договор перечитайте настройки: рост сырого числа может быть сменой единицы, а не прибылью. Ошибка отображения не должна становиться основанием для повторной отправки.

Источники

  1. ERC-20 (откроется в новой вкладке)
  2. Ethereum token standards (откроется в новой вкладке)