코테
[백준 1008] A/B JAVA - BigDecimal 사용
오은이
2024. 11. 18. 16:44


기존 작성 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a = sc.nextDouble();
double b = sc.nextDouble();
System.out.println(a/b);
}
}
예제 테스트
입력
1 3
출력
0.3333333333333333
정답 값은 소수점 아래 32개의 숫자가 나오지만, double형의 값 범위 때문에 16자리까지밖에 표현되지 않았다.
변경 코드
import java.math.BigDecimal;
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigDecimal a = sc.nextBigDecimal();
BigDecimal b = sc.nextBigDecimal();
BigDecimal result = a.divide(b, 32, BigDecimal.ROUND_HALF_UP);
System.out.println(result);
}
}
BigDecimal로 변경 후 연산 시 최대 소수점 아래 자릿수를 지정한다.
예제 테스트
입력
1 3
출력
0.33333333333333333333333333333333
