ERC20 合约无法转移大额代币

ERC20 contract not able to transfer large tokens

我正在构建一个 ERC20 令牌。我正确地使用了小数点。所以,我将 10^21 个代币转移到一个函数来转移我的代币。

Minted tokens : 1000000 * (10**decimals) # decimals = 18

所以我应该可以转账这笔钱?

我做了一个 UI 并在出现此错误的地方使用了 web3.js。

Unhandled Rejection (Error): 
invalid number value (arg="_price", coderType="uint256", value="1e+21")

然后我也在 Remix 中尝试了相同的值。还有交易失败。数字执行失败,例如我要转移 10*20 令牌。那么交易也失败了。

感谢您的帮助。

用这个解决了它: https://github.com/ethereum/web3.js/issues/2077#issuecomment-468530879

          const dec = window.web3.utils.toBN(this.props.decimals)
          const price_ =  window.web3.utils.toBN(this.Object.value*(100))
          const price ="0x"+ price_.mul(window.web3.utils.toBN(10).pow(dec)).toString("hex")