codecamp

Node.js 数字

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);

上面的代码生成以下结果。

除以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值

要测试NaN,请使用isNaN函数:

isNaN(parseInt("cat"));

注意4

要测试给定数是否是有效的有限数,请使用 isFinite 函数:

console.log(isFinite(10/5));
console.log(isFinite(10/0));
console.log(isFinite(parseFloat("css")));

上面的代码生成以下结果。

isFinite函数结果

Node.js 数据类型
Node.js 布尔值
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }