Image
Kotlin/기타

[Kotlin Math] Kotlin에서 제곱, 제곱근, 세제곱근 연산을 하는 방법 : pow, sqrt, cbrt

Kotlin에서 제곱 연산을 하는 방법

Kotlin에서 제곱 연산을 하려면  kotlin.math 패키지의 pow 연산을 쓰면 된다. pow연산은 Double, Float두가지 자료형에 대해 지원된다.

 

Double 자료형 제곱 연산

Double 자료형은 Double이나 Int를 인자로 받아 제곱 연산(pow)을 수행할 수 있으며, 반환 자료형은 모두 Double이다.

public actual inline fun Double.pow(x: Double): Double
public actual inline fun Double.pow(n: Int): Double

 

예를 들어 아래와 같이 연산을 진행할 수 있다. 

println(2.0.pow(3.0)) // 8.0 출력
println(2.0.pow(3)) // 8.0 출력

 

Float 자료형 제곱 연산

Float 자료형은 Float이나 Int를 인자로 받아 제곱 연산을 수행하며, 반환 자료형은 모두 Float이다.

public actual inline fun Float.pow(x: Float): Float
public actual inline fun Float.pow(n: Int): Float

 

예를 들어 아래와 같이 연산을 수행할 수 있다.

println(2.0f.pow(3.0f)) // 8.0 출력
println(2.0f.pow(3)) // 8.0 출력

 

하지만, 내부적으로 Float으로 제곱연산을 하는 것은 Double로 제곱연산을 하는 것과 같다. 4byte로 이루어진 실수인 Float을 8byte로 이루어진 Double로 형변환 후 연산을 수행하기 때문이다.

public actual inline fun Float.pow(x: Float): Float = nativeMath.pow(this.toDouble(), x.toDouble()).toFloat()

 

Int에 대해 제곱 연산하기

위의 Float에 대한 pow연산을 응용해 Int에 대한 제곱 연산또한 수행이 가능하다. 단순히  toDouble을 사용해 Double로 형변환 한 후 제곱을 수행하면 된다. 

println(2.toDouble().pow(3)) // 8.0 출력

 

Kotlin에서 제곱근 연산을 하는 방법

sqrt 함수를 이용하는 방법

Kotlin에서 제곱근 연산을 하는 방법은 sqrt 함수를 사용하면 된다. sqrt는 square root의 축약어로, 인자로는 Double이나 Float을 받는다.

public actual inline fun sqrt(x: Double): Double = nativeMath.sqrt(x)
public actual inline fun sqrt(x: Float): Float = nativeMath.sqrt(x.toDouble()).toFloat()

 

예를 들어 아래와 같이 4.0에 대해 제곱근 연산을 수행할 수 있다.

println(sqrt(4.0)) // 2.0 출력

 

pow 함수를 이용하는 방법

제곱(pow) 연산을 활용해 제곱근을 구할 수도 있다. 1/2 제곱 연산을 수행하면 그것이 바로 제곱근이기 때문이다.

val number = 4.0
val squareRoot = number.pow(1.0 / 2.0) // 2

 

Kotlin에서 세제곱근 연산을 하는 방법

cbrt 함수를 사용하는 방법

Kotlin에서 세제곱근 연산을 하기 위해서는 cbrt는 cube root의 축약어로 영어로 세제곱근을 뜻한다. 인자로는 Double 혹은  Float을 받는다.

public actual inline fun cbrt(x: Double): Double = nativeMath.cbrt(x)
public actual inline fun cbrt(x: Float): Float = nativeMath.cbrt(x.toDouble()).toFloat()

 

예를 들어 아래와 같이 8.0에 대해 세제곱근 연산을 수행할 수 있다.

println(cbrt(8.0)) // 2.0 출력

 

 

pow 함수를 사용하는 방법

제곱(pow) 연산을 활용해 세제곱근을 구할 수도 있다. 1/3 제곱 연산을 수행하면 그것이 바로 세제곱근이기 때문이다.

val number = 27.0
val cubeRoot = number.pow(1.0 / 3.0) // 3

 

 

반응형

 

이 글의 저작권은 '조세영의 Kotlin World' 에 있습니다. 글, 이미지 무단 재배포 및 변경을 금지합니다.

 

 

Kotlin, Android, Spring 사용자 오픈 카톡

오셔서 궁금한 점을 질문해보세요!
비밀번호 : kotlin22

open.kakao.com