JavaScript提供將數值轉成整數的方法parseInt,用于轉換字符串數據“123”,或者浮點數1.23。
復制代碼 代碼如下:
parseInt("1"); // 1
parseInt("1.2"); // 1
parseInt("-1.2"); // -1
parseInt(1.2); // 1
parseInt(0); // 0
parseInt("0"); // 0
但是這個parseInt函數不是經常有效:
復制代碼 代碼如下:
parseInt('06'); // 6
parseInt('08'); // 0 注意,谷歌新版已修正
parseInt("1g"); // 1
parseInt("g1"); // NaN
為此,我寫了一個函數將任意數據轉換成整數。
復制代碼 代碼如下:
function toInt(number) {
return number*1 | 0 || 0;
}
//test
toInt("1"); // 1
toInt("1.2"); // 1
toInt("-1.2"); // -1
toInt(1.2); // 1
toInt(0); // 0
toInt("0"); // 0
toInt(Number.NaN); // 0
toInt(1/0); // 0
復制代碼 代碼如下:
function toInt(number) {
return number && + number | 0 || 0;
}
為了在js中表達更大范圍的數值,我還寫了一個函數提供參考,如下:
復制代碼 代碼如下:
function toInt(number) {
return Infinity === number ? 0 : (number*1 || 0).toFixed(0)*1;
}
新聞熱點
疑難解答
圖片精選