js处理大数字的问题

2019-02-26 01:12:40javascript问题

js中,有一个数字12345678901234.123456,结果只能显示12345678901234.123,
也就是在被格式化时,被截掉了,

''+12345678901234.123456;//12345678901234.123
(12345678901234.123456).toString();//12345678901234.123

我想知道,有什么方法可以保留这个原始数字么?即使转成字符串也行。

网友回答:

  • 已注销 已注销 2019-2-26 1:18 回复:
    已被采纳

var a = new String('12345678901234.12345')


  • 冯恒智 冯恒智 2019-2-26 1:18 回复:

    (12345678901234.123456)-12345678901234=0.123046875
    精度已经丢失了,一开始就不要当数字存


  • KiritoXF KiritoXF 2019-2-26 1:27 回复:
    > Number.isSafeInteger(12345678901234.123456)
    

> false

这个已经不是js的安全数字了

> Number.MAX_SAFE_INTEGER
> 9007199254740991

如果是个整数的话倒可以参照超出JavaScript安全整数限制的数字计算-BigInt来处理,但小数的话可能就…


  • 谭光志 谭光志 2019-2-26 1:17 回复:

    在一开始的时候就用字符串来表示