Функция isNaN
Функция isNaN
проверяет, является ли число
с плавающей точкой специальным значением NaN (Not a Number).
Это значение возвращается математическими операциями,
которые не имеют определенного результата, например,
деление нуля на ноль или извлечение квадратного корня
из отрицательного числа. Функция применяется к числам
типа Float
или Double
и возвращает
Boolean
значение.
Импорт
import kotlin.math.isNaN
Синтаксис
fun Double.isNaN(): Boolean
fun Float.isNaN(): Boolean
Пример
Проверим, является ли результат деления нуля на ноль нечисловым значением:
val 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")
Результат выполнения кода:
Result: NaN
Is NaN: true
Пример
Проверим обычное число на значение NaN:
val num: Double = 15.7
val res: Boolean = num.isNaN()
println("Is NaN: $res")
Результат выполнения кода:
Is NaN: false
Пример
Проверим результат вычисления квадратного корня из отрицательного числа:
import 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")
Результат выполнения кода:
Result: NaN
Is NaN: true
Пример
Использование функции с типом Float
:
val num: Float = 0.0F
val result: Float = num / 0.0F
val res: Boolean = result.isNaN()
println("Is NaN: $res")
Результат выполнения кода:
Is NaN: true
Пример
Проверка нескольких значений в условии:
val 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")
}
}
Результат выполнения кода:
5.0 is a valid number
NaN is not a number
10.5 is a valid number
NaN is not a number
Смотрите также
-
функцию
parseDoubleOrNull
,
которая безопасно преобразует строку в число -
функцию
requireFinite
,
которая проверяет, что число конечно