Web3js
將數字 0.001 轉換為 BN.js 實例時,錯誤:值必須是整數、十六進製字元串、BN 或 BigNumber 實例
我想轉移 0.001 個代幣,但我不能使用
web3.utils.toWei(0.001)
,因為智能合約有 12 位十進製而不是 18 位十進制。我該如何糾正它?var decimals = 12; var amount = web3.utils.toBN(web3.utils.toHex(0.001)); <--- Getting error here let value = amount.mul(web3.utils.toBN(10).pow(decimals));
錯誤是:
[number-to-bn] while converting number 0.001 to BN.js instance, error: invalid number value. Value must be an integer, hex string, BN or BigNumber instance. Note, decimals are not supported. Given value: "0.001"
BN 不接受小數點數字。您可以執行以下操作:
var decimals = 12; var value = (0.001*(10**decimals)).toString(); var amount = web3.utils.toBN(value);
希望這可以幫助