Класс Number
Класс Number представляет собой абстрактный базовый класс
для всех числовых типов в Kotlin. Он определяет общий интерфейс
для преобразования числовых значений между различными типами.
Наследниками Number являются все примитивные числовые типы
Kotlin: Byte, Short, Int, Long,
Float и Double.
Импорт
import kotlin.Number
Синтаксис
public 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 в другие числовые типы:
val 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")
Результат выполнения кода:
Byte: 123
Short: 123
Int: 123
Long: 123
Float: 123.0
Double: 123.0
Пример
Работа с числами разных типов через общий интерфейс Number:
val 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")
}
Результат выполнения кода:
Number 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
Пример
Преобразование чисел с плавающей точкой в целочисленные типы:
val doubleNum: Number = 123.456
println("toByte(): ${doubleNum.toByte()}")
println("toShort(): ${doubleNum.toShort()}")
println("toInt(): ${doubleNum.toInt()}")
println("toLong(): ${doubleNum.toLong()}")
Результат выполнения кода:
toByte(): 123
toShort(): 123
toInt(): 123
toLong(): 123