如何在前端正确转换BigNumber以避免大小写浮动和指数错误?

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

我有一个函数,它在前端侧计算大数字(从输入中获取1%,然后将数据传递给合约)>

// like this
const input = new BigNumber(_input)
const result = input.multipliedBy(99).dividedBy(100)
return String(result.toFixed())

但是有时候我会收到这样的错误

errors.js:85未捕获(承诺)错误:数字值无效(arg =“ _ minReturn”,coderType =“ uint256”,value =“ 39868830097469.8614”,版本= 4.0.44)

或这样

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

如果您分享最佳实践,我将非常高兴。

我有一个函数,它在前端侧计算大数(从输入中获取1%),然后将数据传递给协定//像这样const input = new BigNumber(_input)const result = input.multipliedBy(...] >

frontend ethereum web3
1个回答
0
投票

已解决

const input = new BigNumber(_input)
const result = input.multipliedBy(99).dividedBy(100)
return toHex(new BigNumber(Math.floor(result)))
© www.soinside.com 2019 - 2024. All rights reserved.