我正在将字符串解析为整数,并且在某些值之前它可以正常工作。之后,结果并不准确。 代码如下所示
parseInt(someString);//this string will have any value.
例如,当我执行以下代码时,我得到的结果为 18446744073709552000
parseInt(18446744073709551616) //result 18446744073709552000
但我期待结果是18446744073709551616。
任何人都可以说出错了吗?我如何实现我想要的目标。
我需要检查字符串是否超过最大值。那怎么可能呢?
答案 0 :(得分:3)
您在JavaScript中超过了max value
整数,随后失去了精确度。
What is JavaScript's highest integer value that a Number can go to without losing precision?
为什么你得到零:
让mathInt为Z表示的数学整数值 在radix-R表示法中,使用字母A-Z和a-z表示数字 值10到35. (但是,如果R是10且Z包含超过20 有效数字,20之后的每个有效数字可能是 在执行选项中由0位替换;如果R 不是2,4,8,10,16或32,那么mathInt可能是一个 依赖于实现的数学整数近似 以radix-R表示法用Z表示的值。)