单位
以太币的单位
数字字面量后可以附加以太币单位(数字字面量和单位间需要有空格),以在不同面值之间转换。如果表示以太币金额的数字字面量不带单位,会默认其单位为 wei。例如,1 与 1 wei 相等,1e18 wei 与 1 ether 相等。
以太币单位及 Solidity 中此单位的表示可参见此表:
| 单位 | 等价于 | 在 Solidity 中的表示 |
|---|---|---|
| wei | 1 wei | wei |
| Kwei (babbage) | $10^3$ wei | |
| Mwei (lovelace) | $10^6$ wei | |
| Gwei (shannon) | $10^9$ wei | |
| microether (szabo) | $10^{12}$ wei | szabo |
| milliether (finney) | $10^{15}$ wei | finney |
| ether | $10^{18}$ wei | ether |
时间单位
数字字面量后附加 seconds、minutes、hours、week 或 years(数字字面量和单位间需要有空格),可以代表以秒为基准的时间。
Solidity中, 以下列出的表达式均为真。换句话说,这些单位间的转换可以参照以下规则:
1 == 1 seconds1 minutes == 60 seconds1 hours == 60 minutes1 days == 24 hours1 weeks == 7 days1 years == 365 days
由于要考虑到平闰年等问题,使用这些单位时要格外小心。
Solidity 中的单位不能附加在变量之后,若要转换变量的单位,可以考虑用类似这样的方法解决:
uint64 hoursAfter = uint64(now) + count * 1 hours;