JavaScript学习笔记---数值

奇怪的计算

0.1 + 0.2 === 0.3
//false
0.1 + 0.2 == 0.3
//false

0.3 / 0.1
//2.9999999999999996

(0.3 - 0.2) === (0.2 - 0.1)
//false复制代码

按照正常的想法,上面的输出都是有问题的.

如果0.1+0.2不等于0.3,那么等于什么呢?

//0.30000000000000004
复制代码

JavaScript 内部,所有数字都是以64位浮点数形式储存,即使整数也是如此。所以, 11.0是相同的,是同一个数

那么上面的结果是怎么来的呢?

数值精度

精度范围-(2^53-1)~(2^53-1)

数值范围

2^1024~2^(-1023)

最大值

Number.MAX_VALUE
//1.7976931348623157e+308复制代码

最小值

Number.MIN_VALUE
//5e-324
复制代码

数值的表示

十进制,十六进制,科学计数法.

下面两种情况会自动转化为科学计数法

  • 总位数超过21位

1234567890123456789012
//1.2345678901234568e+21

123456789012345678901
//123456789012345680000复制代码

  • 小数点后面至少有6位0

0.0000003
//3e-7

0.000003
//0.000003复制代码

进制

  • 十进制:没有前导0的数值。
  • 八进制:有前缀0o0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
  • 十六进制:有前缀0x0X的数值。
  • 二进制:有前缀0b0B的数值

默认会都转化为十进制

特殊值

+0 -0,默认是相等的.

1/0
//Infinity

1/-0
//-Infinity复制代码

NaN,表示“非数字”(Not a Number)

出现的场合

  • 字符串解析出错

5 - 'x'
//NaN
复制代码

  • 数学函数运算

Math.log(-1)
//NaN复制代码

  • 0/0




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值