Свойство NaN
Свойство NaN представляет значение "не число" (Not a Number)
для типов с плавающей точкой Float и Double.
Данное значение возвращается при выполнении математических операций,
которые не имеют определенного числового результата.
Доступ
// Для типа Double
Double.NaN
// Для типа Float
Float.NaN
Синтаксис
// Double
public const val NaN: Double
// Float
public const val NaN: Float
Пример
Получение значения NaN для разных типов:
val nanDouble: Double = Double.NaN
val nanFloat: Float = Float.NaN
println(nanDouble)
println(nanFloat)
Результат выполнения кода:
Double NaN
Float NaN
Пример
Математические операции, которые возвращают NaN:
val result1: Double = 0.0 / 0.0
val result2: Double = Math.sqrt(-1.0)
val result3: Double = Double.POSITIVE_INFINITY / Double.POSITIVE_INFINITY
println(result1)
println(result2)
println(result3)
Результат выполнения кода:
Double NaN
Double NaN
Double NaN
Пример
Проверка на значение NaN с помощью метода isNaN:
val num1: Double = 5.0
val num2: Double = Double.NaN
println(num1.isNaN())
println(num2.isNaN())
Результат выполнения кода:
false
true
Пример
Сравнение значений NaN:
val nan1: Double = Double.NaN
val nan2: Double = Double.NaN
println(nan1 == nan2)
println(nan1.equals(nan2))
Результат выполнения кода:
false
true
Пример
Обработка NaN в условных выражениях:
val value: Double = Double.NaN
if (value.isNaN()) {
println("Value is not a number")
} else {
println("Value is: $value")
}
Результат выполнения кода:
String "Value is not a number"