在Solidity中,我们需要知道一点既定事实。总所周知,我们可以有wei
,szabo
,finney
,ether
等单位来表示以太币。
同时也有seconds
,minutes
,hours
,days
,weeks
等单位来表示时间。
我们知道,1 ether = 10^18 wei
,1 minute = 60 seconds
。因此,我们如果要在代码里表示1 eth
的内容,我们可以选择输入10 ** 18
,但是这并不是好的做法。
因此,Solidity提供了一种更好的方式来表示这些单位。一种是Ether Units
用于表示ETH的单位,另一种是Time Units
用于表示时间的单位。
最早时,Solidity提供了wei
,szabo
,finney
,ether
等单位来表示ETH的单位。不过在0.7.0
版本后,Solidity删除了szabo
和finney
单位。只保留了wei
,gwei
,ether
。
可以看到,wei
,gwei
,ether
他们之间的转换关系为1 ether == 10 ** 9 gwei == 10 ** 18 wei
。
那么,如何表示时间量呢?Solidity提供了seconds
,minutes
,hours
,days
,weeks
等单位来表示时间。
他们的转换关系如上述代码所示。
提示,即使使用了智能单位,我们依然可以使用一般的运算符号,比如+
,-
,*
,/
,%
等来进行运算。