如何正确地将uint256数字从前端传递到智能合约?

问题描述 投票:0回答:1

我在前端有一些数学,效果很好,但是当数学计算出像这样的大数字时1.1350120633522164e + 23

我收到错误

未处理的拒绝(错误):数字值无效(arg =“ minDestinationAmount”,coderType =“ uint256”,value =“ 1.1350120633522164e + 23”,版本= 4.0.44)

我使用过BN

   const minDestBN = new BigNumber(input) 

   const  minDestinationAmount = minDestBN.multipliedBy(99).dividedBy(100)

res minDestinationAmoun = 1.1350120633522164e + 23

如何在前端将数字1.1350120633522164e + 23转换为uint256?

ethereum solidity web3
1个回答
0
投票

这对我有帮助

    BigNumber.config({ EXPONENTIAL_AT: 1e+9 })
    let minDestinationAmount = minDestBN.multipliedBy(99).dividedBy(100)
    minDestinationAmount = String(minDestinationAmount)

但是最好听一听最佳实践

© www.soinside.com 2019 - 2024. All rights reserved.