首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么BigNumber的etherjs返回0

为什么BigNumber的etherjs返回0
EN

Stack Overflow用户
提问于 2021-05-01 07:27:30
回答 1查看 3.8K关注 0票数 1

我正在使用来自etherjs的BigNumber,我正在执行以下非常简单的操作:

代码语言:javascript
复制
const cost = BigNumber.from(3)
    .div(BigNumber.from(1000))
    .mul(BigNumber.from(3));

  console.log(cost.toString());

它输出'0',但应该是0.09。

为什么?我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2021-05-01 07:38:50

据我所知,从文档中可以看出,以太的BigNumber只处理大的整数。文档中没有提到小数值、精度或比例尺,在处理小数值的库中可以看到所有这些。另外,文档提到它目前在BigNumber的实现中使用了BigNumberBN.js不处理小数值。从其文件中:

注意:这个库不支持小数。

这并不是很清楚(大多数示例都是十进制的),它们可能意味着不支持小数值。

给你几个选择:

  1. 您可以使用的单位是您需要的精度的倍数。例如,如果在小数点右侧需要两位数字的精度,那么您需要处理的值乘以100。然后除以100得到输出的整个部分,并在100上执行余数操作以获得输出的小数部分(如果需要,可以使用前导0格式化)。

有几个处理小数值的大数库,如big.js.和bignumber

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67343884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档