BigDecimal
java.Math.BigDecimal - double로 표현이 안되는 부동소수점(실수)로 표현
BigInteger - long으로 표힌이 안되는 정수를 표현
BigDecimal의 생성
- 나눗셈 계산이 끝나지 않고 무한히 반복될때(무한소수)exception이 발생하므로 표기할 자리수와 처리방식을 정해주어야 함.
java.Math.BigDecimal - double로 표현이 안되는 부동소수점(실수)로 표현
BigInteger - long으로 표힌이 안되는 정수를 표현
BigDecimal의 생성
new BigDecimal("10.5");BigDecimal 사용 예
import java.math.BigDecimal; public class BigDecimalTest { public static void main(String[] args) { System.out.println(2.00 - 1.10); // 0.9나와야 하는데 0.899999999 나옴 BigDecimal b1 = new BigDecimal("2.00"); BigDecimal b2 = new BigDecimal("1.10"); System.out.println(b1.subtract(b2)); // 제대로 나옴 } }BigDecimal 나눗셈시 주의사항
- 나눗셈 계산이 끝나지 않고 무한히 반복될때(무한소수)exception이 발생하므로 표기할 자리수와 처리방식을 정해주어야 함.
import java.math.BigDecimal; public class BigDecimalTest { public static void main(String[] args) { System.out.println(2.00-1.10); BigDecimal d1 = new BigDecimal("2.00"); BigDecimal d2 = new BigDecimal("1.10"); //+:add(), -:subtract(), / : divide(), *:multiply BigDecimal result = d1.subtract(d2); double d = result.doubleValue(); System.out.println(result +" :"+d); //첫번째 인수 : 나눌수, 2번째 인수는 scale : 소수점이하 몇 자리까지, 3번째는 소수점 이하 처리 방식 result = d1.divide(d2,3,BigDecimal.ROUND_CEILING);//소수점자리 3자리까지 반올림처리 System.out.println("나눈결과 : "+result); } }