主页 > imtoken官网地址打不 > 以太坊中的以太币和代币计量单位

以太坊中的以太币和代币计量单位

imtoken官网地址打不 2023-09-18 05:13:42

无论是构建交易转移以太币,还是调用智能合约发行代币以太币最低买几个,单位都是必不可少的。今天就带大家详细了解一下以太坊中ether和token的单位,以及如何通过web3进行操作。

以太单位换算

首先,我们来看看以太单位之间的转换。 ether的最小单位是wei,1个eth相当于10的wei的8次方。通常,人们也使用 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控制台以太币最低买几个,这里详细演示具体的单位或基数转换。

启动geth并输入控制台命令:

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

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

十六进制转十进制

这种转换方式是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位的部分会被截断。

以太单位换算

上表列出了ethers之间的单位基数,也可以使用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"

您可以自行尝试其他相关转换。对应的转化类型如下:

- 奎/阿达

-mwei/巴贝奇

-gwei/香农

- 萨博

- 芬尼

- 以太

- 凯瑟/格兰德/爱因斯坦

- 金属

- 聚集

- 系绳

通过上述函数,我们可以在交易过程中以任意单位发送交易,无需使用最小单位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 个最小单位的值。