Node.js 數(shù)字

2020-07-20 16:45 更新

JavaScript中的所有數(shù)字都是64位IEEE 754雙精度浮點數(shù),都具有相同的浮點數(shù)類型。算術(shù)運(yùn)算(+, - ,*,/,%)對數(shù)字起作用。

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

上面的代碼生成以下結(jié)果。

算術(shù)運(yùn)算結(jié)果

例子

JavaScript中的數(shù)字類型與其他語言中的整數(shù)數(shù)據(jù)類型非常類似:

console.log(1024 * 1024);

上面的代碼生成以下結(jié)果。

數(shù)字類型結(jié)果

然而,使用數(shù)字類型的棘手部分是,對于許多數(shù)字值,它是一個實際數(shù)的近似值。

例如:

console.log(0.1 + 0.2);

上面的代碼生成以下結(jié)果。

近似值

當(dāng)執(zhí)行浮點數(shù)學(xué)運(yùn)算時,我們不能操作任意實數(shù)和期望精確值:

console.log(1 - 0.3 + 0.1 == 0.8);

上面的代碼生成以下結(jié)果。

浮點運(yùn)算結(jié)果

注意1

在JavaScript中將數(shù)字除以0會返回值Infinity或-Infinity而不是生成運(yùn)行時異常:

console.log(5 / 0);
console.log(-5 / 0);

上面的代碼生成以下結(jié)果。

除以0的結(jié)果

Infinity和-Infinity是我們可以在JavaScript中比較的有效值:

var x = 10, y = 0;
console.log(x / y == Infinity);

上面的代碼生成以下結(jié)果。


注意2

你可以使用函數(shù)parseInt和parseFloat將字符串轉(zhuǎn)換為數(shù)字:

console.log(parseInt("32"));
console.log(parseFloat("8.24"));
console.log(parseInt("234.12345"));
console.log(parseFloat("10"));

上面的代碼生成以下結(jié)果。

字符串轉(zhuǎn)換結(jié)果

注意3

如果我們?yōu)檫@些函數(shù)提供不可解析的值,它們返回特殊值NaN:

console.log(parseInt("cat"));
console.log(parseFloat("css"));

上面的代碼生成以下結(jié)果。

NaN值

要測試NaN,請使用isNaN函數(shù):

isNaN(parseInt("cat"));

注意4

要測試給定數(shù)是否是有效的有限數(shù),請使用 isFinite 函數(shù):

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

上面的代碼生成以下結(jié)果。

isFinite函數(shù)結(jié)果

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號