【问题标题】:Why are there no decimal numbers in Solidity?为什么 Solidity 中没有十进制数字?
【发布时间】:2022-08-09 07:08:23
【问题描述】:

我知道 Solidity 中没有浮点数/双精度数,但我想知道为什么?我用谷歌搜索了它,我能找到的只是关于如何处理这种缺乏的问题。

    标签: blockchain ethereum solidity smartcontracts


    【解决方案1】:

    我认为背后的原因是floating-point各种函数计算的操作在不同的运行环境下会产生不同的结果。以太坊区块链是确定性的,可确保智能合约始终为相同的输入产生相同的输出。

    同样对于大额交易,浮点数四舍五入的微小差异会导致财务上的巨大差异

    【讨论】:

      【解决方案2】:

      见:https://ethereum.stackexchange.com/a/58751

      显而易见的原因是浮点数本质上是不可预测的,这会使节点上的操作结果不同。这会导致分叉。

      另外:https://docs.soliditylang.org/en/develop/types.html#fixed-point-numbers

      【讨论】:

        猜你喜欢
        • 2022-01-20
        • 2023-03-18
        • 2016-11-12
        • 1970-01-01
        • 2019-08-31
        • 2019-10-07
        • 2016-10-04
        • 2011-02-09
        • 2015-11-07
        相关资源
        最近更新 更多