我有以下内容:
import { BigNumber } from "@ethersproject/bignumber";
import { parseUnits } from "@ethersproject/units";
const decimals = 18;
export const add = (a: string, b: string): string => {
const _a = parseUnits(a, decimals);
console.log(_a.toString(), a);
const _b = BigNumber.from(b);
const res = _a.add(_b).toString();
return res;
};
// a = 123456789123456789.123456789123456789
// b = 1
// _a.toString() = 123456789123456789123456789123456789
// res = 123456789123456789123456789123456790
我有没有忽略一些显而易见的原因,导致res
不能被计算为"123456789123456790.123456789123456789"呢?
即使我不传递decimals
参数,结果仍然相同。(理想情况下,我不想指定实际的小数位数)
ethers.BigNumber.from("21.33")
,它会失败。我还没有弄清楚为什么。 - BigRon