Свойство NaN
Свойство NaN представляет значение "не число" (Not a Number)
для типов с плавающей точкой Float и Double.
Данное значение возвращается при выполнении математических операций,
которые не имеют определенного числового результата.
Доступ
kotlin// Для типа Double
Double.NaN
// Для типа Float
Float.NaN
Синтаксис
kotlin// Double
public const val NaN: Double
// Float
public const val NaN: Float
Пример
Получение значения NaN для разных типов:
kotlinval nanDouble: Double = Double.NaN
val nanFloat: Float = Float.NaN
println(nanDouble)
println(nanFloat)
Результат выполнения кода:
kotlinDouble NaN
Float NaN
Пример
Математические операции, которые возвращают NaN:
kotlinval 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)
Результат выполнения кода:
kotlinDouble NaN
Double NaN
Double NaN
Пример
Проверка на значение NaN с помощью метода isNaN:
kotlinval num1: Double = 5.0
val num2: Double = Double.NaN
println(num1.isNaN())
println(num2.isNaN())
Результат выполнения кода:
kotlinfalse
true
Пример
Сравнение значений NaN:
kotlinval nan1: Double = Double.NaN
val nan2: Double = Double.NaN
println(nan1 == nan2)
println(nan1.equals(nan2))
Результат выполнения кода:
kotlinfalse
true
Пример
Обработка NaN в условных выражениях:
kotlinval value: Double = Double.NaN
if (value.isNaN()) {
println("Value is not a number")
} else {
println("Value is: $value")
}
Результат выполнения кода:
kotlinString "Value is not a number"