V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
61162833
V2EX  ›  问与答

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

  •  
  •   61162833 · 186 天前 · 1295 次点击
    这是一个创建于 186 天前的主题,其中的信息可能已经有所发展或是发生改变。
    var a = 123*1e20;

    打印 a 的值为:1.23e+22

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

    我在 console 测试似乎 toLocaleString 没有位数限制?后面加了很多 0 还是可以正确显示
    runze
        8
    runze  
       186 天前   ❤️ 1
    @61162833
    (12300000000000000000001).toLocaleString('fullwide', {useGrouping:false})
    MonikaCeng
        9
    MonikaCeng  
       186 天前 via Android
    bn.js
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1410 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:10 · PVG 02:10 · LAX 11:10 · JFK 14:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.