在javascript中,我們經(jīng)常需要判斷一個(gè)數(shù)是否為整數(shù)。例如,我們需要判斷用戶輸入的是不是整數(shù)或者需要對計(jì)算結(jié)果進(jìn)行判斷等。下面就來介紹幾種判斷一個(gè)數(shù)是否為整數(shù)的方法。
?第一種方法是使用Math.floor()函數(shù),該函數(shù)可將數(shù)字向下取整并返回?cái)?shù)字的整數(shù)部分。如果原數(shù)字與向下取整后的結(jié)果相等,則說明該數(shù)為整數(shù)。
function isInt(num){ return Math.floor(num) === num; } console.log(isInt(4.5)); // false console.log(isInt(4)); // true?
第二種方法是使用parseInt()函數(shù),該函數(shù)可將字符串轉(zhuǎn)換為整數(shù)。如果原字符串與轉(zhuǎn)換后的結(jié)果相等,則說明該數(shù)為整數(shù)。需要注意的是,parseInt()函數(shù)有一個(gè)缺陷,即它會(huì)忽略字符串前面的零。
function isInt(str){ return parseInt(str) === parseInt(str, 10); } console.log(isInt('004')); // true console.log(isInt('4.5')); // false?
第三種方法是使用正則表達(dá)式,利用正則表達(dá)式判斷一個(gè)數(shù)是否為整數(shù)。如果該數(shù)匹配我們設(shè)定的正則表達(dá)式,則說明該數(shù)為整數(shù)。以下正則表達(dá)式匹配的是整數(shù),包括正整數(shù)、負(fù)整數(shù)和零。
function isInt(num){ var reg = /^-?\d+$/; return reg.test(num); } console.log(isInt('004')); // true console.log(isInt('4.5')); // false?
以上就是三種判斷一個(gè)數(shù)是否為整數(shù)的方法,我們可以根據(jù)具體需求選擇不同的方法。需要注意的是,在處理浮點(diǎn)數(shù)時(shí),由于計(jì)算誤差,我們需要設(shè)置一個(gè)容差值來判斷浮點(diǎn)數(shù)是否為整數(shù)。