Solidity 以太坊单位: wei、gwei 和 ether

文章解释了Solidity中以太坊的单位转换,特别是wei、gwei和ether之间的关系,并展示了如何在代码中正确表示这些单位。

以下两行代码是等价的

(bool ok, ) = recipient.call{value: 1 ether}("");

(bool ok, ) = recipient.call{value: 1_000_000_000_000_000_000}("");

如果你愿意数一数,那就是 10^18。记住,Solidity 中没有浮点数,所以“1 以太坊”实际上是其最小单位的 10^18 倍。

以太坊的最小单位是 1 wei。10^18 wei 等于 1 以太坊。

另一个常用的单位是 gwei。1 gwei 等于 10 亿 wei,或 10 亿分之一以太坊。

Remix 不允许你在发送价值时指定以太坊的分数部分,因此你必须从分数中计算出金额并将其转换为 wei 或 gwei。

顺便说一下,尽管 Solidity 不支持浮点数,但你可以指定以太坊的分数部分。Solidity 编译器足够聪明,能够理解以太坊的分数部分本身并不是一个分数。以下代码行是等价的

(bool ok, ) = recipient.call{value: 1 gwei}("");

(bool ok, ) = recipient.call{value: 1_000_000_000 wei}("");

(bool ok, ) = recipient.call{value: 0.000000001 ether}("");

顺便提一下,以太坊还有其他单位的名称,如 Finney 和 Sazbo,但这些单位很少使用,最好在需要知道它们的值时直接谷歌搜索。然而,以下值必须记住:

  • wei 是以太坊的最小单位。
  • 10^18 wei 等于 1 以太坊
  • 1 gwei 等于 10 亿 wei,或 10 亿分之一以太坊。

通过 RareSkills 了解更多

查看 Web3 训练营 ,以了解更多关于智能合约开发和代币标准的内容。

  • 原文链接: rareskills.io/learn-soli...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
RareSkills
RareSkills
https://www.rareskills.io/