Функция isNaN

Функция isNaN проверяет, является ли число с плавающей точкой специальным значением NaN (Not a Number). Это значение возвращается математическими операциями, которые не имеют определенного результата, например, деление нуля на ноль или извлечение квадратного корня из отрицательного числа. Функция применяется к числам типа Float или Double и возвращает Boolean значение.

Импорт

kotlinimport kotlin.math.isNaN

Синтаксис

kotlinfun Double.isNaN(): Boolean
kotlinfun Float.isNaN(): Boolean

Пример

Проверим, является ли результат деления нуля на ноль нечисловым значением:

kotlinval num1: Double = 0.0
val num2: Double = 0.0
val result: Double = num1 / num2
val res: Boolean = result.isNaN()
println("Result: $result")
println("Is NaN: $res")

Результат выполнения кода:

kotlinResult: NaN
Is NaN: true

Пример

Проверим обычное число на значение NaN:

kotlinval num: Double = 15.7
val res: Boolean = num.isNaN()
println("Is NaN: $res")

Результат выполнения кода:

kotlinIs NaN: false

Пример

Проверим результат вычисления квадратного корня из отрицательного числа:

kotlinimport kotlin.math.sqrt

val num: Double = -4.0
val result: Double = sqrt(num)
val res: Boolean = result.isNaN()
println("Result: $result")
println("Is NaN: $res")

Результат выполнения кода:

kotlinResult: NaN
Is NaN: true

Пример

Использование функции с типом Float:

kotlinval num: Float = 0.0F
val result: Float = num / 0.0F
val res: Boolean = result.isNaN()
println("Is NaN: $res")

Результат выполнения кода:

kotlinIs NaN: true

Пример

Проверка нескольких значений в условии:

kotlinval values = listOf(5.0, 0.0/0.0, 10.5, sqrt(-1.0))

for (value in values) {
  if (value.isNaN()) {
    println("$value is not a number")
  } else {
    println("$value is a valid number")
  }
}

Результат выполнения кода:

kotlin5.0 is a valid number
NaN is not a number
10.5 is a valid number
NaN is not a number

Смотрите также

  • функцию parseDoubleOrNull,
    которая безопасно преобразует строку в число
  • функцию requireFinite,
    которая проверяет, что число конечно