JavaScript中的所有数字都是64位IEEE 754双精度浮点数,都具有相同的浮点数类型。算术运算(+, - ,*,/,%)对数字起作用。
var myData = 1; var myValue = 2; console.log(myData + 1); console.log(myData / myValue); console.log(myData * myValue); console.log(myData - myValue); console.log(myData % 2);
上面的代码生成以下结果。
例子
JavaScript中的数字类型与其他语言中的整数数据类型非常类似:
console.log(1024 * 1024);
上面的代码生成以下结果。
然而,使用数字类型的棘手部分是,对于许多数字值,它是一个实际数的近似值。
例如:
console.log(0.1 + 0.2);
上面的代码生成以下结果。
当执行浮点数学运算时,我们不能操作任意实数和期望精确值:
console.log(1 - 0.3 + 0.1 == 0.8);
上面的代码生成以下结果。
注意1
在JavaScript中将数字除以0会返回值Infinity或-Infinity而不是生成运行时异常:
console.log(5 / 0); console.log(-5 / 0);
上面的代码生成以下结果。
Infinity和-Infinity是我们可以在JavaScript中比较的有效值:
var x = 10, y = 0; console.log(x / y == Infinity);
上面的代码生成以下结果。
注意2
你可以使用函数parseInt和parseFloat将字符串转换为数字:
console.log(parseInt("32")); console.log(parseFloat("8.24")); console.log(parseInt("234.12345")); console.log(parseFloat("10"));
上面的代码生成以下结果。
注意3
如果我们为这些函数提供不可解析的值,它们返回特殊值NaN:
console.log(parseInt("cat")); console.log(parseFloat("css"));
上面的代码生成以下结果。
要测试NaN,请使用isNaN函数:
isNaN(parseInt("cat"));
注意4
要测试给定数是否是有效的有限数,请使用 isFinite
函数:
console.log(isFinite(10/5)); console.log(isFinite(10/0)); console.log(isFinite(parseFloat("css")));
上面的代码生成以下结果。