以太坊中以太币及代币计量单位

iHomeSoft 11月前 561

以太币单位转换

首先我们来看一下以太币单位之间的转换,以太币的最小单位为wei,1个eth相当于10的8次方wei。通常,大家也使用Gwei作为展示单位。比较常用的就是eth,Gwei和wei。

单位wei值Wei
wei11 wei
Kwei (babbage)1e3 wei1,000
Mwei (lovelace)1e6 wei1,000,000
Gwei (shannon)1e9 wei1,000,000,000
microether (szabo)1e12 wei1,000,000,000,000
milliether (finney)1e15 wei1,000,000,000,000,000
ether1e18 wei1,000,000,000,000,000,000

进制转换

为了使用和验证web3的操作命令,我们先进入geth的console控制台,在这里对具体的单位或进制转换进行详细的实例演示。

启动geth,进入控制台命令:

/Users/zzs/develop/eth/geth/geth attach rpc:/Users/zzs/Library/Ethereum/geth.ipc1

可根据自己的具体情况调整geth路径和ipc路径。

十六进制转十进制

此转换方法为web3.toDecimal(hexString)。直接在控制台输入一下命令进行使用此函数进行转换。

> web3.toDecimal('0x16');2212

通过此函数将十六进制的0x16转换为十进制的22。

十进制转十六进制

转换函数:web3.fromDecimal(number)。

控制台命令及结果如下:

> web3.fromDecimal('22');"0x16"12

转换为BigNumber类型

把给定数字或十六进制字符串转为 BigNumber 类型的实例。

> web3.toBigNumber('200000000000000000000001');2.00000000000000000000001e+2312

此处转换需要注意的是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"12345678910111213141516

其他的相关转换大家可自行尝试,下面列出相应的转换种类:
- kwei/ada
- mwei/babbage
- gwei/shannon
- szabo
- finney
- ether
- kether/grand/einstein
- mether
- gether
- tether

通过上面的函数,在交易的过程中我们就可以随意的单位进行发送交易,而不必使用最小单位wei。

>eth.sendTransaction({from:eth.coinbase,to:"0x2bda4364bb076187f0ef0067a61ccb95d636e383",value:web3.toWei(1,"ether")})12

通过查询余额的方法,我们也可以看出区块链中存储这些数据的单位为wei。

> web3.eth.getBalance(eth.coinbase)26799999999999999999912

代币中的单位

在编写ERC-20的代币合约时我们可以指定代币的单位,比如:

uint8 public decimals;1

这里就指定了代币单位精确到小数点后几位。比如精确到小数点后3位,那么1个代币存储时就是1000个最小单位的值。


文章来源:https://blog.csdn.net/wo541075754/article/details/79049425

最新回复 (3)
  • 2
    11月份imtoken空投币领取地址总汇
    http://suo.im/5hho1K
返回