61162833
V2EX  ›  问与答

JavaScript 如何正确显示一个大数字?

  •  
  •   61162833 · Nov 14, 2021 · 3240 views
    This topic created in 1820 days ago, the information mentioned may be changed or developed.
    var a = 123*1e20;

    打印 a 的值为:1.23e+22

    有没有可能得到一个 "12300000000000000000000" 的字串值?
    9 replies  •  2021-11-14 17:07:26 +08:00
    lemonnTr
    lemonnTr
    Nov 14, 2021
    1
    BigInt 了解一下
    yuuko
    yuuko
    Nov 14, 2021❤️1
    2
    (12300000000000000000000).toLocaleString('fullwide', {useGrouping:false})
    yuuko
    yuuko
    Nov 14, 2021
    3
    toLocaleString 还是有位数限制的,大数建议还是用像一楼说的 BigNumber 之类的处理
    momomirage
    momomirage
    Nov 14, 2021
    4
    这个数字已经远大于 Number.MAX_SAFE_INTEGER 了
    精确表示需要 BigInt 没有也可以字符串
    nlysh007
    nlysh007
    Nov 14, 2021❤️1
    5
    BigInt(123)*BigInt(1e20)+""
    wanguorui123
    wanguorui123
    Nov 14, 2021
    6
    Math.js
    61162833
    61162833
    OP
    Nov 14, 2021❤️1
    7
    @yuuko 牛逼!感谢!

    我在 console 测试似乎 toLocaleString 没有位数限制?后面加了很多 0 还是可以正确显示
    runze
    runze
    Nov 14, 2021❤️1
    8
    @61162833
    (12300000000000000000001).toLocaleString('fullwide', {useGrouping:false})
    MonikaCeng
    MonikaCeng
    Nov 14, 2021 via Android
    9
    bn.js
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1416 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 10:20 · PVG 18:20 · LAX 02:20 · JFK 05:20
    ♥ Do have faith in what you're doing.