Javascript 有效數(shù)字是指在進(jìn)行數(shù)值運算時被認(rèn)可的數(shù)字。如果數(shù)字沒有達(dá)到有效數(shù)字的要求,那么在進(jìn)行數(shù)學(xué)運算時它將不被認(rèn)可,比如輸出結(jié)果可能會是NaN。
舉個例子,下面這個數(shù)字在Javascript中是被認(rèn)可的有效數(shù)字。
let num1= 123.456;
但是如果存在以下情況就不是一個有效數(shù)字。
let num2 = 0.1+0.2; // 輸出結(jié)果為 0.30000000000000004
還有一個例子,下面這個數(shù)字也不是一個有效數(shù)字。
let num3 = 299792458 * 299792458; // 輸出結(jié)果會是 Infinity
在Javascript中,有一些方法可以幫助你來判斷和轉(zhuǎn)換有效數(shù)字。
Number.isFinite()方法
該方法用于檢查數(shù)字是否為有限數(shù)字,如果是有限的則返回true,否則返回false。
Number.isFinite(Infinity); // false Number.isFinite(-Infinity); // false Number.isFinite(0); // true Number.isFinite(2/3); // true
Number.isInteger()方法
該方法用于判斷數(shù)字是否為整數(shù),如果是整數(shù)則返回true,否則返回false。
Number.isInteger(10); // true Number.isInteger(10.111); //false
Number.parseFloat()方法
該方法用于將字符串轉(zhuǎn)換為浮點數(shù),如果無法轉(zhuǎn)換則返回NaN。
Number.parseFloat('1.23'); // 1.23
Number.parseInt()方法
該方法用于將字符串轉(zhuǎn)換為整數(shù),如果無法轉(zhuǎn)換則返回NaN。
Number.parseInt('12.34'); // 12
在處理有效數(shù)字時,還需要考慮到一些Javascript的特殊情況。
NaN
NaN是一個特殊的數(shù)字,它代表"不是一個數(shù)字"。在Javascript中,對NaN進(jìn)行任何數(shù)學(xué)操作的結(jié)果都是NaN,包括與NaN進(jìn)行相等比較。
console.log(NaN === NaN); // false
Infinity
Infinity代表正無窮,-Infinity代表負(fù)無窮。在Javascript中,除以0會得到正無窮或負(fù)無窮,正無窮和負(fù)無窮與任何數(shù)相乘都為正/負(fù)無窮。
console.log(1/0); // Infinity console.log(1/-0); // -Infinity console.log(3*Infinity); // Infinity
總之,在Javascript中使用數(shù)字時,需要注意有效數(shù)字的范圍和相關(guān)的操作符。通過使用上述方法可以更方便地對數(shù)字進(jìn)行檢查和轉(zhuǎn)換。