主页 > 苹果手机安装imtoken > 以太坊中的计量单位和换算
以太坊中的计量单位和换算
以太单位换算
首先,我们来看看以太单位之间的转换。 ether的最小单位是wei,1个eth相当于10的wei的18次方。通常,人们也使用 Gwei 作为显示单元。比较常用的是eth、Gwei和wei。
单位wei的wei值
魏
1
1 卫
葵(白菜)
1e3 魏
1,000
Mwei (lovelace)
1e6 魏
1,000,000
桂(香农)
1e9 魏
1,000,000,000
微醚(szabo)
1e12 魏
1,000,000,000,000
毫醚(芬尼)
1e15 卫
1,000,000,000,000,000
以太
1e18 卫
1,000,000,000,000,000,000
基础转化
为了使用和验证web3的操作命令,我们先进入geth的console控制台,这里详细演示具体的单位或基数转换。
十六进制转十进制
这种转换方式是web3.toDecimal(hexString)。直接在控制台输入命令即可使用该功能进行转换。
> web3.toDecimal('0x16');
22
使用此函数将十六进制的 0x16 转换为十进制的 22。
十进制转十六进制
转换函数:web3.fromDecimal(number).
控制台命令和结果如下:
> web3.fromDecimal('22');
"0x16"
转换为 BigNumber 类型
将给定的数字或十六进制字符串转换为 BigNumber 类型的实例。
> web3.toBigNumber('200000000000000000000001');
2.00000000000000000000001e+23
需要注意的是这里的转换是BigNumber只保留20位小数,超过20位的部分会被截断。
以太单位换算
上表列出了以太之间的单位基数,也可以使用 web3.基本函数是 web3.fromWei 和 web3.toWei(number, unit)。
具体例子如下:
// wei转换为ether
> web3.fromWei('22000000000000', 'ether');
"0.000022"
// wei转换为kwei
> web3.fromWei('1000','kwei')
"1"
// wei转换为gwei
> web3.fromWei('1000000000','gwei')
"1"
// ether转换为wei
> web3.toWei('1','ether')
"1000000000000000000"
您可以自行尝试其他相关转换。对应的转化类型如下:
通过上面的函数,我们可以在交易过程中以任意单位发送交易,而不是使用最小单位wei。
> eth.sendTransaction({from:eth.coinbase,to:"0x2bda4364bb076187f0ef0067a61ccb95d636e383",value:web3.toWei(1,"ether")})
通过查询余额比特币计算单位,我们还可以看到区块链中存储这些数据的单位是wei。
> web3.eth.getBalance(eth.coinbase)
267999999999999999999
代币单位
我们可以在编写ERC-20代币合约时指定代币的单位比特币计算单位,如:
uint8 public decimals;
这里指定的令牌单位有几个小数位。比如精确到小数点后3位,那么1个token就是存储时1000个最小单位的值。