Development/Android

[Kotlin] 반올림 처리 - DecimalFormat

SeungYong.Lee 2024. 4. 19. 14:51
반응형

소수점 반올림 처리 표시에 사용되는 DecimalFormat

import java.text.DecimalFormat
import java.math.RoundingMode

fun main() {
    val a = 13
    val b = 0.165
    val decimalFormat = DecimalFormat("0.000000")  // 소수점 아래 6자리까지, 부족한 부분은 0으로 채움
    decimalFormat.roundingMode = RoundingMode.DOWN
    val res = decimalFormat.format(a * b)
    println("FormatDouble -> $res")  // 출력: "FormatDouble -> 2.145000"
}

(# 해당 위치에 숫자가 없으면 아무것도 표시하지 않지만, 0 해당 위치에 숫자가 없어도 0 표시합니다.)

 

여기서 roundingMode는 숫자을 반올림할 때 규칙을 정의합니다.

UP: 0이 아닌 소수점 아래 값이 존재할 때 항상 올림합니다. 예를 들어, 1.1은 2가 되고, -1.1은 -2가 됩니다.

DOWN: 소수점 아래 값을 무시하고 항상 내림합니다. 예를 들어, 1.9는 1이 되고, -1.9는 -1이 됩니다.

CEILING: 양수인 경우 올림하고, 음수인 경우 내림합니다. 예를 들어, 1.1은 2가 되고, -1.1은 -1이 됩니다.

FLOOR: 양수인 경우 내림하고, 음수인 경우 올림합니다. 예를 들어, 1.9는 1이 되고, -1.9는 -2가 됩니다.

HALF_UP: 가장 가까운 정수로 반올림하되, 정확히 중간에 위치한 경우 올림합니다. 예를 들어, 1.5는 2가 되고, -1.5는 -2가 됩니다.

HALF_DOWN: 가장 가까운 정수로 반올림하되, 정확히 중간에 위치한 경우 내림합니다. 예를 들어, 1.5는 1이 되고, -1.5는 -1이 됩니다.

HALF_EVEN: 가장 가까운 정수로 반올림하되, 정확히 중간에 위치한 경우 짝수 방향으로 반올림합니다(은행가 반올림). 이 방법은 평균적으로 오차를 줄일 수 있어 통계에서 자주 사용됩니다. 예를 들어, 1.5는 2가 되고, 2.5는 2가 됩니다.

UNNECESSARY: 반올림이 필요하지 않은 경우에 사용됩니다. 반올림이 필요한 상황에서 이 모드를 사용하면 ArithmeticException이 발생합니다.
반응형