You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hardhat中对ethers.parseEther()的结果执行乘法运算?

解决ethers.js中parseEther返回值的乘法问题

问题原因

ethers v6版本起,ethers.parseEther()返回的是原生JavaScript BigInt类型,而非旧版本的BigNumber对象:

  • 直接用* 2报错是因为JS不允许BigInt和普通Number混合运算,必须显式转换类型
  • 调用.mul()方法报错是因为原生BigInt没有这个方法,该方法属于ethers旧版的BigNumber对象

正确写法

有两种可行的乘法实现方式:

  • 方式一:将数字转换为BigInt类型后运算
const PRICE_ONE = ethers.parseEther("0.05");
const test = PRICE_ONE * BigInt(2);
  • 方式二:直接使用BigInt字面量(数字后加n)
const PRICE_ONE = ethers.parseEther("0.05");
const test = PRICE_ONE * 2n;

额外说明

如果需要将运算结果转换回人类可读的以太币格式,可以使用:

const readablePrice = ethers.formatEther(test);

内容的提问来源于stack exchange,提问作者WHOATEMYNOODLES

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 05:12:02