【发布时间】:2022-08-09 07:08:23
【问题描述】:
我知道 Solidity 中没有浮点数/双精度数,但我想知道为什么?我用谷歌搜索了它,我能找到的只是关于如何处理这种缺乏的问题。
标签: blockchain ethereum solidity smartcontracts
我知道 Solidity 中没有浮点数/双精度数,但我想知道为什么?我用谷歌搜索了它,我能找到的只是关于如何处理这种缺乏的问题。
标签: blockchain ethereum solidity smartcontracts
我认为背后的原因是floating-point各种函数计算的操作在不同的运行环境下会产生不同的结果。以太坊区块链是确定性的,可确保智能合约始终为相同的输入产生相同的输出。
同样对于大额交易,浮点数四舍五入的微小差异会导致财务上的巨大差异
【讨论】:
见:https://ethereum.stackexchange.com/a/58751
显而易见的原因是浮点数本质上是不可预测的,这会使节点上的操作结果不同。这会导致分叉。
另外:https://docs.soliditylang.org/en/develop/types.html#fixed-point-numbers
【讨论】: