单位
以太币的单位
数字字面量后可以附加以太币单位(数字字面量和单位间需要有空格),以在不同面值之间转换。如果表示以太币金额的数字字面量不带单位,会默认其单位为 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 seconds
1 minutes == 60 seconds
1 hours == 60 minutes
1 days == 24 hours
1 weeks == 7 days
1 years == 365 days
由于要考虑到平闰年等问题,使用这些单位时要格外小心。
Solidity 中的单位不能附加在变量之后,若要转换变量的单位,可以考虑用类似这样的方法解决:
uint64 hoursAfter = uint64(now) + count * 1 hours;