【问题标题】:How to convert a BigNumber to a normal number in Typescript如何在 Typescript 中将 BigNumber 转换为普通数字
【发布时间】:2022-01-27 01:29:42
【问题描述】:

伙计们,我正在从智能合约中获取数据,它给出了一个大数字作为响应,我想将其转换为普通数字,以便我可以使用它来创建条形图。如何才能做到这一点?

这是我编写的一段代码,以便我可以将值存储在一个数组中:

//Creating candidatevoterarray for graph
    for (var i =0; i<= 4; i++){
        const temparray = this.candidatearray[i]
        const count = temparray.voteCount
        // this.candidatevotearray.push(count)
        console.log(count)
  }

【问题讨论】:

    标签: javascript angular typescript smartcontracts


    【解决方案1】:

    TypeScriptECMAScriptAngular 中都没有BigNumber 这样的东西。这意味着BigNumber 必须是您自己编写的或来自您未告诉我们的某个库。

    如果是您自己写的,那么只有您知道如何将其转换为numberbigint。如果它来自某个库,则必须查看该库的文档。

    但是,请注意,有人会编写和/或使用类似BigNumber 类的主要原因是因为它不能由numberbigint 表示地方!所以,很可能你的BigNumber不能被(准确地)转换成numberbigint

    例如,我刚刚随机找到一个库,它定义了一个名为BigNumber 的类/构造函数,名为bignumber.js。它有一个BigNumber.prototype.toNumber method,它将BigNumber 的实例转换为ECMAScript 原语number。但当然,BigNumbers 的数量比 numbers 的数量要多得多(更准确地说,BigNumbers 的数量无限,但只有 264@ 987654343@s),所以这个转换不可能是准确的。特别是,有最小和最大的number,但没有最小或最大的BigNumber,因此任何大于最大number 或小于最小numberBigNumber 都无法表示。

    【讨论】:

      【解决方案2】:

      正如文档 https://docs.ethers.io/v5/api/utils/bignumber/ 所说,BigNumber 中有一个方法 .toNumber()

      【讨论】:

        猜你喜欢
        • 2016-09-14
        • 2015-05-09
        • 2021-10-04
        • 2021-03-29
        • 2014-05-06
        • 2014-12-07
        • 2020-08-24
        • 2012-04-01
        • 1970-01-01
        相关资源
        最近更新 更多