我们都知道+、Number()
和parseInt()
可以将字符串转为整数。
但就我而言,我得到了非常奇怪的结果。
我需要将字符串 '6145390195186705543'
转换为数字。
let str = '6145390195186705543';
let number = +str; // 6145390195186705000, but should be: 6145390195186705543
有人能解释一下为什么以及如何解决吗?
最佳答案
您的号码高于 Number.MAX_SAFE_INTEGER
(9,007,199,254,740,991),这意味着 js 可能无法很好地表示它。
关于javascript - 为什么我不能在不损失 JS 精度的情况下将字符串转换为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51984393/