【问题标题】:Can I use floating points in near protocol?我可以在近协议中使用浮点吗?
【发布时间】:2021-04-22 12:40:48
【问题描述】:

浮点运算是非确定性的,因此区块链网络可能无法就链的状态达成一致。

我在我的智能合约中使用以下代码来计算根:

let mint_value = (juror_stake as f64).powf(0.8) as u128 + 1;

是否允许使用此类代码?如果不是怎么做浮点运算。

【问题讨论】:

    标签: nearprotocol


    【解决方案1】:

    由于舍入误差,不应使用浮点数来存储和进行计算。 (例如,在浏览器的控制台中输入 .1 + .2 == .3)。 我认为,如果它编译、运行并按照您的意图进行操作,那么您就可以使用它。只要您使用 u128 令牌存储和执行大多数计算。

    【讨论】:

      【解决方案2】:

      在 NEAR Wasm VM 中,我们支持浮点数。我们将wasmer 用于当前的主网虚拟机,它对浮动的非确定性行为进行了特殊处理。因此,您可以在需要时使用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-01-06
        • 1970-01-01
        • 2021-09-20
        • 2013-11-23
        • 1970-01-01
        • 1970-01-01
        • 2018-10-30
        相关资源
        最近更新 更多