Как проверить, является ли число NaN в JavaScript?

Стоит отметить, что когда файл .CSV имеет поля, заключенные в двойные кавычки, которые содержат разрывы строк, Excel не будет импортировать файл .CSV должным образом, если файл .CSV написан в формате UTF-8. Excel рассматривает разрыв строки, как если бы он был CR / LF и начинал новую строку. Электронная таблица искажена. Это кажется правдой, даже если полуколоны используются как разделители полей (вместо запятых).

Проблема может быть решена с помощью Windows Notepad для редактирования файла .CSV, используя File> Save As. .. сохранить файл и перед сохранением файла, изменив кодировку файла с UTF-8 на ANSI. После того как файл будет сохранен в формате ANSI, я обнаружил, что Microsoft Excel 2013, работающий в Windows 7 Professional, будет импортировать файл должным образом.

384
задан Michał Perłakowski 8 March 2016 в 12:04
поделиться

6 ответов

Попробуйте следующий код:

isNaN(parseFloat("geoff"))

Чтобы проверить, является ли любое значение NaN, а не просто числами, см. Здесь: Как вы проверяете NaN в Javascript?

552
ответ дан 22 November 2019 в 23:42
поделиться

Является ли (NaN> = 0) ? ...... " Я не знаю ".

function IsNotNumber( i ){
    if( i >= 0 ){ return false; }
    if( i <= 0 ){ return false; }
    return true;
}

Условия выполняются только если ИСТИНА .

Не в ЛОЖЬ .

Не на « Я не знаю ».

1
ответ дан J.M.I. MADISON 8 March 2016 в 12:04
поделиться

Я написал этот ответ на другой вопрос по StackOverflow , где другой проверяет, когда NaN == null, но затем он был помечен как дубликат, поэтому я не хочу тратить свою работу.

Посмотрите на Сеть разработчиков Mozilla о NaN.


Краткий ответ

Просто используйте distance || 0, если хотите убедиться, что вы указали правильное число, или isNaN(), чтобы проверить его.

Длинный ответ

NaN (Not-a-Number) - это странный глобальный объект в javascript, часто возвращаемый при сбое в математической операции.

Вы хотели проверить, если NaN == null, что приводит к false. Hovewer даже NaN == NaN приводит к false.

Простой способ узнать, является ли переменная NaN, глобальной функцией isNaN().

Другой является x !== x, который верен только тогда, когда х является NaN. (спасибо, что напомнили @ Raphael-Schweikert)

Но почему короткий ответ сработал?

Давайте выясним.

Когда вы звоните NaN == false, результат равен false, то же самое с NaN == true.

Где-то в спецификациях JavaScript есть запись с всегда ложными значениями, которая включает в себя:

  • NaN - Not-a-Number
  • "" - пустая строка
  • false - логическое значение false
  • null - нулевой объект
  • undefined - неопределенные переменные
  • 0 - числовой 0, включая + 0 и -0
1
ответ дан Community 8 March 2016 в 12:04
поделиться

Может быть и так:

function isNaNCustom(value){
    return value.toString() === 'NaN' && 
           typeof value !== 'string' && 
           typeof value === 'number'
}
2
ответ дан Pierfrancesco 8 March 2016 в 12:04
поделиться

Вы должны использовать глобальный вызов функции isNaN (значение) , потому что:

  • Поддерживается кроссбраузерность
  • См. isNaN для документации

Примеры:

 isNaN('geoff'); // true
 isNaN('3'); // false

Надеюсь, это вам поможет.

14
ответ дан 22 November 2019 в 23:42
поделиться

Используйте этот код:

isNaN('geoff');

См. isNaN () документы по MDN .

alert ( isNaN('abcd'));  // alerts true
alert ( isNaN('2.0'));  // alerts false
alert ( isNaN(2.0));  // alerts false
52
ответ дан 22 November 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: