Contract-Development
在js中將十六進制64轉換為十進制
我正在使用 ERC20 totalsupply 方法獲取合約的totalSupply。
我正在嘗試將返回的十六進制轉換為十進制。
我收到:
var totalSupply = "0x00000000000000000000000000000000000000000000006c6b935b8bbd400000";
然後我在做:
console.log(parseInt(totalSupply, 16))
但是我得到一個科學數字,我怎樣才能顯示正常數字?我是否正確轉換它?
您正在正確解析數字。您的問題實際上是“如何將 JavaScript 中的數字轉換為沒有科學記數法的字元串?”
BigNumber 庫在這方面做得很好,它包含在
web3.js
:> var totalSupply = '0x00000000000000000000000000000000000000000000006c6b935b8bbd400000'; undefined > web3.toBigNumber(totalSupply).toFixed() "2000000000000000000000"
Web3 不斷變化。今天可以通過以下方式完成:
parseInt(web3.eth.abi.decodeParameter("uint256", totalSupply)) / 10 ** 18