Как я могу проверить, что число с плавающей запятой или целое число? - PullRequest
668 голосов
/ 08 октября 2010

Как узнать, что число float или integer?

1.25 --> float  
1 --> integer  
0 --> integer  
0.25 --> float

Ответы [ 41 ]

0 голосов
/ 25 августа 2014

Приведенные ниже функции защищают от пустых строк, неопределенных значений, нулей и диапазонов значений max / min.Движок Javascript должен был встроить эти функции с первого дня.:)

Наслаждайтесь!

function IsInteger(iVal) {
    var iParsedVal; //our internal converted int value


    iParsedVal = parseInt(iVal,10);

    if (isNaN(iParsedVal) || Infinity == iParsedVal || -Infinity == iParsedVal) //sanity check - guard against empty strings and max/min values
        return false;
    else
        return Number(iVal) === (iParsedVal | 0); //the 2nd operand group (intValue | 0), evaluates to true only if the intValue is an integer; so an int type will only return true
}

function IsFloat(fVal) {
    var fParsedVal; //our internal converted float value


    fParsedVal = parseFloat(fVal);

    if (isNaN(fParsedVal) || Infinity == fParsedVal || -Infinity == fParsedVal) //sanity check - guard against empty strings and max/min values
        return false;
    else
        return !!(fVal % 1); //true only if there is a fractional value after the mod op; the !! returns the opposite value of the op which reflects the function's return value
}
...