[Java/Kotlin] BigDecimal 사용하는 이유

Yuri Lee·2022년 7월 24일
0

Intro

현재 진행하고 있는 프로젝트에서는 특정 식을 사용하여 값들을 가공 후 표시하는 일들이 많다. 기존에는 기본 자료형인 float나 double형을 정의하여 사용했다. 하지만 값이 생각과 달리 다른 결과를 도출했다.

Why?

단순히 float나 double형을 선언하여 구현하였을 때는 정확한 소수점이 이루어지지 않기 때문이다. 따라서 이럴 경우에는 BigDecimal 클래스를 사용해야 한다고 한다.

BigDecimal

  • 정확한 숫자 계산을 위한 클래스
  • java.math 패키지에 포함되어 정확한 계산이 요구되는 정산 프로그램이나 회계 프로그램과 같은 화폐 단위를 다루는 프로그그램에서 사용

Example

/**
 * You can edit, run, and share this code.
 * play.kotlinlang.org
 */

import java.math.BigDecimal

fun main() {
  	val d1 : Double  = 12345.12347986;
    val d2 : Double = 41235.23498705;
    
   	println("d1: "+ d1)
    println("d2: "+ d2)
    println("d1 + d2 = " + (d1 + d2)); // 53580.358466909995
    
    val bd1 : BigDecimal = BigDecimal.valueOf(d1);
	val bd2 : BigDecimal = BigDecimal.valueOf(d2);
  	println("bd1 = " + bd1);
    println("bd2 = " + bd2);
    println(bd1.add(bd2)); // 53580.35846691

}

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/java.math.-big-decimal/

https://developer-syubrofo.tistory.com/117

https://12soso12.tistory.com/12

profile
Step by step goes a long way ✨

0개의 댓글