专栏首页丑胖侠以太坊中以太币及代币计量单位
原创

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

无论是构建交易进行以太币的转账或是调用智能合约进行代币的发放,单位都是不可或缺的。今天就带大家详细了解一下以太坊中以太币和代币的单位,以及如何通过web3的方式进行操作。

以太币单位转换

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

单位

wei值

Wei

wei

1

1 wei

Kwei (babbage)

1e3 wei

1,000

Mwei (lovelace)

1e6 wei

1,000,000

Gwei (shannon)

1e9 wei

1,000,000,000

microether (szabo)

1e12 wei

1,000,000,000,000

milliether (finney)

1e15 wei

1,000,000,000,000,000

ether

1e18 wei

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位的部分将会被截取掉。

以太币单位转换

上面表格中列出了以太币之间的单位进制,同样可以使用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"

其他的相关转换大家可自行尝试,下面列出相应的转换种类:

  • 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")})

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

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

代币中的单位

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

uint8 public decimals;

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

更多资讯

**获取更多资讯,请关注微信公众号:程序新视界。或加入QQ技术交流群:659809063。

本人诚接以太坊相关研发及技术支持,如有需要请联系QQ:541075754。非诚勿扰。**

这里写图片描述

更多交流技术资讯请扫码加入知识星球(小密圈)

这里写图片描述

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • IT从业者不可不知的三条定律

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    用户1161110
  • List列表按照对象进行排序

    在某些业务场景下需要根据list列表中对象的字段进行排序。今天就以实例说明: 实体类 public class Product { private in...

    用户1161110
  • 基于Spring Boot快速实现发送邮件功能

    邮件在项目中经常会被用到,比如用邮件发送通知。比如,通过邮件注册、认证、找回密码、系统报警通知、报表信息等。本篇文章带大家通过SpringBoot快速实现一个发...

    用户1161110
  • Python爬取股票信息,并实现可视化数据

    截止2019年年底我国股票投资者数量为15975.24万户, 如此多的股民热衷于炒股,首先抛开炒股技术不说, 那么多股票数据是不是非常难找, 找到之后是不是看着...

    松鼠爱吃饼干
  • LeetCode 334. 递增的三元子序列

    如果存在这样的 i, j, k, 且满足 0 ≤ i < j < k ≤ n-1, 使得 arr[i] < arr[j] < arr[k] ,返回 true...

    Michael阿明
  • 每天一算:Contains Duplicate II

    五分钟学算法
  • vSphere 6 创建RAC虚拟机共享磁盘解析

    在vsphere环境中搭建虚机RAC需要遵循一定的步骤,虚拟机配置RAC,如果不是挂裸盘RDM的话,按以下步骤进行,不影响VMotion 的功能,但是影响Sto...

    孙杰
  • Spring Boot 定时任务之Quartz

    当定时任务愈加复杂时,使用Spring注解@Schedule 已经不能满足业务需要。 @Schedule 实现的定时任务:

    用户2146693
  • Leetcode 31. Next Permutation

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn....

    Tyan
  • 太搞笑了!高德地图一边庆祝DAU破亿,一边被抢红包的网友骂惨

    十一黄金周,路上太拥挤,地图导航类APP成为车友出行的重点使用工具。阿里旗下的高德地图,自然不肯错过十一大流量机会,寄希望借此笼络用户实现数据逆袭。国庆节长假还...

    曾响铃

扫码关注云+社区

领取腾讯云代金券