Свойство 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"

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