JS-数字

JavaScript不区分整数和浮点数,所有的数字都是用浮点数表示。JavaScript能表示的数字范围我觉得没必要记住,绝对够你平常使用的了。(如果你是从事科学研究或者大数据计算的另说)。

1.整数

JavaScript可以接受10进制和16进制的数字。16进制数字以“0X” 或“0x”开头,由0-9和A-F(a-f)组成。

10进制:390

16进制:0xCAFE7876  0XA567

ES标准不支持8进制的数字,但是某些JavaScript的实现可以支持8进制。正因为此,最好还是不要使用8进制的数字了。

2.浮点数

有两种表示方法。

3.14

0.09

1.34e3=1340

9e-2=0.09

E(e)及后面的数字表示10的次方。这个很好理解吧。

3.运算符

+-*%这些基本的都不说了,除此之外还支持复杂的计算。这些计算都放在Math对象中了。比如最大值,最小值,四舍五入,三角函数等。

JavaScript在计算结果溢出时不会报错(无论超出JavaScript表示数值的上边界或者下边界),除以0时也不会报错。

超出上边界:返回 Infinity(正无穷大)

超出下边界:返回 -Infinity(负无穷大

除以0:返回Infinity(正数除以0) -Infinity(负数除以0) NaN

(0除以0)

还有一种下溢的情况,就是计算结果接近于0但是又超过JavaScript表达的范围。

正数接近于0:返回0

负数接近于0:返回-0

非数字值NaN是Not a Number的缩写,这个值很特殊。它和任何值都不相等包括其自身。可以借助函数isNaN()来判断一个值是不是NaN。

4.浮点数的错误

JavaScript采用的是IEEE-754浮点数表示法,这是一个二进制的表示法。它能够表示二进制的分数比如1/2, 1/8等,但是当表示十进制分数时,就无法精确的表示了。

JavaScript的精度可以让数值极其接近于十进制分数,但是仍然是一个近似值。这样就会带来一些问题。举个栗子:

console.log(0.3-0.2 != (0.2-0.1) )  //true

你可能感兴趣的:(JS-数字)