[Number]js中数字存储(0.1 + 0.2 !== 0.3)

和其他编程语言(如 C 和 Java)不同,JavaScript 不区分整数值和浮点数值,

所有数字在 JavaScript 中均用浮点数值表示,遵循IEEE754标准,在进行数字运算的时候要特别注意。

即:在js中的数字都是64位的浮点数。浮点数不是精确的值。涉及到小数的计算需要特别注意。

IEEE 754

64位浮点数在js中的存储形式如下:

  用数学形式(二进制的科学计数法)表示如下:

  

  示例: 

  由上可知,可以存储的数据的小数点为52位,整个数据的有效数字长度为53位。即精度只有53个二进制位。

  1. 整数

  1)精度

   2^(-53)~2^53之间的整数数字都可以精确表示。否则,存储的数据会失去精度。

 

  简单来说,15位的十进制整数都可以精确表示。

  2)数值范围

  由存储形式可知,存储的数值大小主要有指数(Exp)决定。

  数值范围2^(-1023)~2^(1024) 开区间

  

  2. 小数

  小数存储的时候需要特别注意,因为当小数转为二进制的时候,容易丢失精度。

  

 

  

 

转载于:https://www.cnblogs.com/lyraLee/p/10912590.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值