Kotlin 반올림, 올림, 내림 - round, ceil, floor
Notepad96
·2020. 11. 30. 05:30
1. round, ceil, floor - 반올림, 올림, 내림
반올림, 올림, 내림의 수를 구하기 위해서는 다음 함수를 사용할 수 있다.
round : 반올림
public actual inline fun round(x: Double): Double = nativeMath.rint(x)
ceil : 올림
public actual inline fun ceil(x: Double): Double = nativeMath.ceil(x)
floor : 내림
public actual inline fun floor(x: Double): Double = nativeMath.floor(x)
함수들을 사용할 때 각 함수들은 인수로 Double 타입을 받는 것을 주의하여 사용해야 한다.
각 함수들을 사용하기 위해서는
import kotlin.math.* 를 해주어야 한다.
이 중 일부 함수만 사용하고자 한다면 *대신 해당 함수명을 넣어서 import하면 된다.
2. 코 드
환경 : Kotlin Version = 1.4.20, JVM
import kotlin.math.*
fun main(args : Array<String>) {
var x: Double = 16.746
var y: Double = 5.453
println("===============올림==================")
println("$x 올림 : ${ceil(x)}")
println("$y 올림 : ${ceil(y)}")
println("===============내림==================")
println("$x 내림 : ${floor(x)}")
println("$y 내림 : ${floor(y)}")
println("===============반올림==================")
println("$x 반올림 : ${round(x)}")
println("$y 반올림 : ${round(y)}")
println("반올림 후 Int : ${x.roundToInt()}")
println("반올림 후 Long : ${x.roundToLong()}")
println("===============반올림 응용==================")
println("$x 소수점 아래 2번 째에서 반올림 : ${round(x*10)/10}")
println("$y 소수점 아래 2번 째에서 반올림 : ${round(y*10)/10}")
println("$x 소수점 아래 3번 째에서 반올림 : ${round(x*100)/100}")
println("$y 소수점 아래 3번 째에서 반올림 : ${round(y*100)/100}")
}
- ceil, floor, round 함수를 사용하여 각각 올림, 내림, 반올림을 수행하였다.
인수로도 Double 타입의 변수를 주었고 반환형도 Double 타입인것을 볼 수 있다.
- 만약 반올림 후 Int 타입이나 Long 타입으로 반환받고자 한다면
roundToInt : 결과를 Int 타입으로 반환
roundToLong : 결과를 Long 타입으로 반환
함수를 사용할 수 있다.
- 소수점 아래 n번 째 자리에서 반올림 하고자 한다면 round 함수를 사용할 뿐이 아니라 추가적인 연산이 필요하다.
1. 반올림 하고자 하는 수에 10^(n-1) [10의 n-1 승] 을 곱
2. round 함수를 사용하여 반올림
3. 이번에는 10^(n-1) 를 나누기
위 같은 작업을 통하여 n번 째 자리에서 반올림 한 수를 구할 수 있다.
3. 참 조
'Kotlin > Algorithm' 카테고리의 다른 글
Kotlin pi, 절댓값, 대소 비교 - PI, abs, max, min (0) | 2020.12.01 |
---|---|
Kotlin StringBuilder - 문자열 효율적으로 다루기 (0) | 2020.11.30 |
Kotlin 제곱, 제곱근 구하기 - sqrt, pow, hypot (0) | 2020.11.29 |
Kotlin 최대공약수/최소공배수 - 유클리드 호제법 (0) | 2020.11.29 |
Kotlin UpperCase & LowerCase - 대소문자 검사 및 변환 (0) | 2020.11.28 |