js的Number类型数据对超范围的整数会⾃动四舍五⼊
在开发过程中,经常会遇到当number位数达到⼀定时就会对数据进⾏四舍五⼊,但是还不是全部数据都会存在有这种规律,原因是
JS 提供Number.MAX_SAFE_INTEGER常量来表⽰最⼤安全整数,Number.MIN_SAFE_INTEGER常量表⽰最⼩安全整数:
Number.MAX_SAFE_INTEGER : 9007199254740991
Number.MIN_SAFE_INTEGER : -9007199254740991
确切地说,JS 中的Number类型只能安全地表⽰-9007199254740991 (-(2^53-1))和9007199254740991(2^53-1)之间的整数,任何超出此范围的整数值都可能失去精度。
js的基本数据类型解决⽅案:
⽅案⼀:利⽤string代替number;
⽅案⼆:使⽤BigInt类型,是js为了⽀持范围粳稻的整数值⼆引⼊的类型,对整数的溢出将不再是问题。
如何使⽤BigInt:
未引⼊BigInt,会四舍五⼊,
var t = 9999999999999999
console.log(t) //10000000000000000
引⼊BigInt
⽅式⼀:直接在整数的末尾加上n
var kk = 9999999999999999n
console.lob(kk) //9999999999999999n
⽅式⼆:使⽤BigInt构造函数
var k = BigInt("9999999999999999")
console.log(k) //9999999999999999n
注意:BigInt 存在兼容性问题;在IE和Safari和Safari oniOS 下是完全不⽀持的;
更多详细的BigInt的⽤法如运算、进制等请参见:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论