Как сделать арифметику с плавающей точкой во время выполнения подложки - PullRequest
1 голос
/ 12 июня 2019

Как я могу сделать математику для значений с плавающей запятой во время выполнения подложки.В качестве простого примера представьте, что я хочу отслеживать процентную ставку в децентрализованных финансах.

Я могу создать прототип, используя процент как целое число

let rate = 2;
let dividend = capital * rate / 100;

Но что если моя процентная ставкаравен 2,5% или 2,44554%?

Есть ли какой-либо стандартный способ сделать арифметику с плавающей запятой?

1 Ответ

3 голосов
/ 12 июня 2019

Поскольку субстрат является структурой для цепочек блоков, важно, чтобы каждый узел достигал одинакового детерминированного результата для консенсуса.

Арифметика с плавающей запятой не детерминирована и поэтому по этой причине недопустима в субстрате.

Стандартный способ обработки арифметики, в котором вам потребуются десятичные разряды, заключается в использованииодин из встроенных примитивных типов для обработки фиксированной точки арифметики.Арифметика с фиксированной точкой безопасна для Субстрата, поскольку она представляет все рациональные числа в виде дроби и всегда преобразуется в детерминированный результат.

Двумя типами, которые используются для обработки арифметики с фиксированной точкой, являются Permill итипы Perbill .

...