ethereum - 如何正确地将 uint256 数字从前端传递给智能合约?
问题描述
我在前端有一些数学,效果很好,但是当数学计算像这样的大数字 1.1350120633522164e+23
我收到错误
未处理拒绝(错误):无效数值(arg="minDestinationAmount", coderType="uint256", value="1.1350120633522164e+23", version=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 ?
解决方案
这对我有帮助
BigNumber.config({ EXPONENTIAL_AT: 1e+9 })
let minDestinationAmount = minDestBN.multipliedBy(99).dividedBy(100)
minDestinationAmount = String(minDestinationAmount)
但是很高兴听到最佳实践
推荐阅读
- android - 在我的应用程序中将“屏幕缩放”设置更改为“大”完全弄乱了几个屏幕(尤其是片段布局)
- sql - 自动增量选择 SQLite
- angular - AngularTS,订阅测试
- android - 使用 Parcelable 衡量性能
- flask - 使用 flask_uploads 上传图像时,图像未验证
- redhat-brms - 我可以将 Red Hat Developer Studio 与 Red Hat Decision Manager 连接起来吗?
- javascript - 如何在 VueJS SFC 中使用 JavaScript 访问样式定义?
- python - 如何在 Anaconda/Conda 中安装 django cms?
- sql - 联系人数据库设计
- javascript - 访问密钥属性在 Firefox 和 Internet Explorer 浏览器中不起作用