波场中wei单位的换算 / 学习智能合约#25

Words
277
Reading
2 min
Listen
Play
6y

towei.jpg

如上图所示,如果在js(前端)中有太大的数,它会自动变成科学计数法,而这样的格式是无法和智能合约交互的!

以太坊中涉及wei单位的换算在web3.js中有个专门的函数:web3.utils.fromWei来处理代币的单位换算。在波场中却没有这个函数,有个tronWeb.fromSun(),但是它只有6位的小数位,wei单位是有18位的小数,差得太多了。你可以专门在前端中安装web3这个库来进行单位的换算。但是,web3这个库体积挺大(1M多),而且在波场中很多地方用不上,这样就显得有点鸡肋,还是自己写个函数来得划算。

wei单位的转换

const dataToWei = function(data){
  let a = data * 1e18
  return this.tronWeb2.toBigNumber(a).toFixed()
}
export {dataToWei}

const dataFromWei = function(data){
  let b = data * 1e-18
  return this.tronWeb2.toBigNumber(b).toFixed(6)
}
export {dataFromWei}

如上所示,这两个函数完美解决了wei单位的换算,和智能合约的交互也很顺畅。要注意智能合约中是没有小数位的,都要换算成整数,再除以相应的百分位。

波场中wei单位的换算 / 学习智能合约#25 | Ecency