В Kotlin для чисел с плавающей точкой используют функцию `pow` из `kotlin.math`.
Ниже — разделы про когда использовать pow, если нужны целые числа и простая функция для Int, чтобы быстро понять устройство материала, практические ограничения и типовые точки отказа.
В Kotlin для чисел с плавающей точкой используют функцию pow из kotlin.math
import kotlin.math.pow
fun main() {
val result = 2.0.pow(3.0)
println(result)
}
Вывод:
8.0
Обратите внимание: pow работает с Double и возвращает Double. Поэтому результат выглядит как 8.0, а не 8
Когда использовать pow
pow удобен, когда вы работаете с дробными значениями или математической формулой, где результат тоже может быть дробным
import kotlin.math.pow
fun main() {
val side = 2.5
val square = side.pow(2.0)
println(square)
}
Вывод:
6.25
Для учебных задач это самый понятный вариант: импортировали функцию, передали основание и показатель, получили результат
Если нужны целые числа
Для учебных задач можно привести результат к Int
import kotlin.math.pow
fun main() {
val result = 2.0.pow(10.0).toInt()
println(result)
}
Но для больших чисел и точных расчетов такое приведение может быть опасным: Double не предназначен для абсолютно точной целочисленной арифметики
Простая функция для Int
Если степень неотрицательная и числа небольшие, можно написать свой вариант
fun intPow(base: Int, exponent: Int): Int {
require(exponent >= 0) { "Степень должна быть неотрицательной" }
var result = 1
repeat(exponent) {
result *= base
}
return result
}
fun main() {
println(intPow(3, 4))
}
Вывод:
81
Как проверить себя
Поменяйте пример на такие значения:
println(intPow(2, 0))
println(intPow(2, 1))
println(intPow(2, 5))
Ожидаемый вывод:
1
2
32
Если при степени 0 получается не 1, значит функция написана неправильно. Это частая проверка для самодельной степени
Что делать с отрицательной степенью
Самодельная функция intPow выше специально запрещает отрицательную степень, потому что результат уже не будет целым числом. Например, 2 в степени -1 дает 0.5. Для таких случаев проще использовать pow и оставаться в Double:
import kotlin.math.pow
fun main() {
println(2.0.pow(-1.0))
}
Вывод:
0.5
Это нормальное поведение. Если вы пишете учебную функцию для Int, лучше явно запретить отрицательную степень через require, чем молча возвращать неожиданный результат
Частые ошибки
Пытаться написать 2 ^ 3
В Kotlin оператор ^ не означает степень. Это побитовая операция в других языках, а в Kotlin для степени используйте pow или свою функцию
Забыть import
Если pow не находится, добавьте:
import kotlin.math.pow
Ждать Int от pow
pow возвращает Double. Если нужен Int, решите, безопасно ли делать .toInt()
Использовать Double там, где важна точность до копейки
Для финансовых расчетов Double не подходит. Если считаете деньги, проценты или точные суммы, используйте BigDecimal и отдельную логику округления. Для обычного учебного примера степени pow достаточно
Что почитать дальше по Kotlin
Если нужен общий маршрут по теме, откройте рубрику Kotlin. Для соседних задач пригодятся эти разборы:
- Как сделать анимацию в Kotlin: простой пример для Android Compose
- Coroutines в Kotlin: первый async-пример
- Inline в Kotlin: что это и когда использовать
- Kotlin Android: первый экран без перегруза