如何在基板运行时进行浮点运算

Jos*_*rff 3 blockchain parity-io substrate

如何在基板运行时对浮点值进行数学运算。作为一个简单的例子,假设我想跟踪去中心化金融中的利率。

我可以使用百分比作为整数进行原型设计

let rate = 2;
let dividend = capital * rate / 100;
Run Code Online (Sandbox Code Playgroud)

但是如果我的利率是 2.5% 或 2.4554% 呢?

是否有任何标准方法来进行浮点运算?

小智 5

由于 Substrate 是区块链的框架,因此每个节点达成一致的确定性结果非常重要。

浮点运算不是确定性的,因此在 Substrate 中是不允许的。

在需要小数位的情况下处理算术的标准方法是使用一种内置的原始类型来处理定点算术。定点算术对 Substrate 是安全的,因为它将所有有理数表示为分数并且总是解析为确定性结果。

用于处理定点算术的两种类型是PermillPerbill类型。