Класс Number

Класс Number представляет собой абстрактный базовый класс для всех числовых типов в Kotlin. Он определяет общий интерфейс для преобразования числовых значений между различными типами. Наследниками Number являются все примитивные числовые типы Kotlin: Byte, Short, Int, Long, Float и Double.

Импорт

kotlinimport kotlin.Number

Синтаксис

kotlinpublic abstract class Number {
  public abstract fun toByte(): Byte
  public abstract fun toShort(): Short
  public abstract fun toInt(): Int
  public abstract fun toLong(): Long
  public abstract fun toFloat(): Float
  public abstract fun toDouble(): Double
}

Пример

Преобразуем число типа Int в другие числовые типы:

kotlinval num: Number = 123

val byteVal: Byte = num.toByte()
val shortVal: Short = num.toShort()
val intVal: Int = num.toInt()
val longVal: Long = num.toLong()
val floatVal: Float = num.toFloat()
val doubleVal: Double = num.toDouble()

println("Byte: $byteVal")
println("Short: $shortVal")
println("Int: $intVal")
println("Long: $longVal")
println("Float: $floatVal")
println("Double: $doubleVal")

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

kotlinByte: 123
Short: 123
Int: 123
Long: 123
Float: 123.0
Double: 123.0

Пример

Работа с числами разных типов через общий интерфейс Number:

kotlinval numbers: List<Number> = listOf(10.toByte(), 20.toShort(), 30, 40L, 50.5F, 60.7)

for (num in numbers) {
  val intValue = num.toInt()
  println("Number $num as Int: $intValue")
}

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

kotlinNumber 10 as Int: 10
Number 20 as Int: 20
Number 30 as Int: 30
Number 40 as Int: 40
Number 50.5 as Int: 50
Number 60.7 as Int: 60

Пример

Преобразование чисел с плавающей точкой в целочисленные типы:

kotlinval doubleNum: Number = 123.456

println("toByte(): ${doubleNum.toByte()}")
println("toShort(): ${doubleNum.toShort()}")
println("toInt(): ${doubleNum.toInt()}")
println("toLong(): ${doubleNum.toLong()}")

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

kotlintoByte(): 123
toShort(): 123
toInt(): 123
toLong(): 123

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

  • тип Int,
    представляющий 32-битные целые числа
  • тип Double,
    представляющий 64-битные числа с плавающей точкой
  • тип Float,
    представляющий 32-битные числа с плавающей точкой
  • тип Long,
    представляющий 64-битные целые числа