현재 진행하고 있는 프로젝트에서는 특정 식을 사용하여 값들을 가공 후 표시하는 일들이 많다. 기존에는 기본 자료형인 float나 double형을 정의하여 사용했다. 하지만 값이 생각과 달리 다른 결과를 도출했다.
단순히 float나 double형을 선언하여 구현하였을 때는 정확한 소수점이 이루어지지 않기 때문이다. 따라서 이럴 경우에는 BigDecimal 클래스를 사용해야 한다고 한다.
/**
* 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/