[Java] BigDecimal
자바를 배울 때, BigDecimal은 거의 사용하지 않는다고 수업에서 그냥 넘겼었다.
(실제로 책을 확인해보니 연필로 크게 X자 표시가 되어있다 ㅎㅎ..)
크고 정확한 실수 값을 표현할때 BigDecimal을 사용한다고만 알고 있었는데,
실무에서 종종 BigDecimal을 사용하는 경우가 있어 찾아보니 아래 참고 1블로그에 정리가 잘 되어있어서 여기 블로그 내용위주로 BigDecimal을 공부하려 한다.
BigDecimal
: 실수형과 달리 정수를 이용해서 실수를 표현한다.
: 실수의 오차는 10진 실수를 2진 실수로 정확히 변환할 수 없는 경우가 있기 때문에 발생하는 것이므로, 오차가 없는 2진 정수로 변환하여 다루는 것이다. 실수를 정수와 10의 제곱의 곱으로 표현한다. (정수 x 10 ^ -scale)
: BigDecimal을 생성하는 방법은 여러 가지가 있는데, 문자열로 숫자를 표현하는 것이 일반적이다. 기본형 리터럴로는 표현할 수 있는 값의 한계가 있다. 그리고 double 타입의 값을 매개변수로 갖는 생성자를 사용하면 오차가 발생할 수 있다.
: BigDecimal의 경우, 자바 기본형이 아니기 때문에 null값을 받아도 NPE(Null Pointer Exception)이 발생하지 않는다고 한다. 다만, DB에서 not null 조건일 경우 null 값을 넣을 수 없기 때문에 0을 default 값으로 설정하는 것이 일반적인 것 같다.
참고1 : https://kingjakeu.github.io/java/2020/12/23/bigdecimal/
BigDecimal 기본 정리, BigDecimal 활용 in Java · Studio u by kingjakeu
BigDecimal 기본 정리, BigDecimal 활용 in Java 23 Dec 2020 BigDecimal을 언제, 왜 사용하는가 거대하고 정확한 실수 값을 표현 할 때, 우리는 BigDecimal이 필요하다. Java에서는 실수 표현을 위해, 기본 자료형으
kingjakeu.github.io
java math library for BigDecimal which allows null values
Is there a BigDecimal library with the basic operations of BigDecimal which allows null values? Null should be treated as 0 for mathematical purpose. I don't want to do all the null checks for po...
stackoverflow.com
참고3: https://wakestand.tistory.com/785
자바 BigDecimal Null값 0으로 처리방법
자바에서 BigDecimal에 Null 값이 섞여서 들어올 수 있는 경우 메소드 하나를 만들어 두면 Null 값일 경우 0으로 반환하게 할 수 있는데 nvl 메소드를 호출하면 파라미터로 넣은 BigDecimal의 값을 보고 Nul
wakestand.tistory.com
참고4: 자바의 정석