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

标签 blockchain substrate parity-io

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

我可以通过将百分比用作整数来制作原型(prototype)

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

但是如果我的利率是 2.5% 或 2.4554% 怎么办?

有没有做浮点运算的标准方法?

最佳答案

由于 Substrate 是区 block 链的框架,因此每个节点都必须达到相同的确定性结果以达成共识。

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

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

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

关于blockchain - 如何在基板运行时进行浮点运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56563909/

相关文章:

rust - parity_codec::codec::Input 在将外部函数解码为结构时未为 Vec<u8> 实现

rust - 如何忽略 `#[derive(Debug)]` 的通用参数?

Python 3、以太坊——如何发送 ERC20 代币?

ruby - 无法将非字符串解码为 common.Address 类型的 Go 结构字段 SendTxArgs.from

blockchain - 在Substrate中,Babe、Aura、Grandpa有什么区别

blockchain - 有没有什么办法可以让区 block 链上的某个特定信息只能被一个特定账户查询?

javascript - 有人成功通过 Web3.js@1.0.0 获得了 ERC20 代币的余额吗?

rust - 如何在基板模块中将 block 号转换为整数类型?

ibm-cloud - 向 IBM Bluemix Blockchain CA (membersrvc.yaml) 添加属性

dart - 在 dart 中解析 X509 证书并提取通用名称