숫자 타입이 또 문제가 생기는 군요..
작은 숫자는 상관없는데 큰 숫자인 경우 123456788인 경우 1.23456788E14 이렇게 보입니다.. 당연한 결과이긴 하지만 사용자 입장에서 원하는 결과는 아니지 않나 생각합니다.
 
자바에서 primitive 만으로 금융권 등에서 통용되는 금액처리를 하기는 어렵습니다. 업무용으로 개발된 언어인 코볼이 이런 면에서는 강세였던 것으로 기억납니다. 차세대 코볼의 역할을 하고 있는 자바 입장에서 이러한 문제에 대한 방편을 갖추고 있겠죠.
 
java.math 패키지에는 BigInteger 와 BigDecimal 이라는 객체가 있습니다. 크기 제한이 없는 숫자죠. 생성자에 매개변수로 숫자만 받는 것이 아니라 char 배열이나 String을 받아 객체를 만들 수 있죠. 즉, 객체 생성 자체가 문자를 큰 숫자로 변환이 가능합니다. 그야 말로 DB 와의 연결을 위해 적합한 숫자입니다.
 
import java.math.BigDecimal;
import java.math.BigInteger;
public class BigDecimalTest {
 public static void main(String[] args) {
  BigDecimal rate = new BigDecimal(".03251234");
     BigDecimal months = new BigDecimal("12");
     BigDecimal monthlyRate = rate
         .divide(months, BigDecimal.ROUND_HALF_DOWN);
     System.out.println("Annual rate : " + rate);
     System.out.println("Monthly rate: " + monthlyRate);
     BigDecimal balance = new BigDecimal("10000.0000");
     for (int i = 0; i < 12; i++) {
       BigDecimal interest = balance.multiply(monthlyRate);
       balance = balance.add(interest);
       System.out.println("Balance: " + balance);
     }
     BigInteger bInt = new BigInteger("3419229223372036854775807");
     System.out.println(bInt);
 }
}
 
더 다양한 예제는 아래 링크를 참조하세요.
 
 
Big Integer Test



[출처] : 다른곳에서 퍼왔는데..그쪽에 링크가 걸려있지 않네요... 출처모름..ㅠㅠ

+ Recent posts