기존 작성 코드
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
'백준' 카테고리의 다른 글
[백준 1100] 하얀 칸 JAVA (0) | 2024.11.27 |
---|---|
[백준 11866] 요세푸스 문제 0 JAVA - 원형 Queue 사용 (1) | 2024.11.12 |
[백준 10988] 팰린드롬인지 확인하기 (0) | 2024.11.11 |
[백준 1157] 단어 공부 JAVA - LinkedHashSet, HashMap 사용 (2) | 2024.11.09 |
[백준 1316] 그룹 단어 체커 JAVA - 데크(Deque) 사용 (0) | 2024.11.08 |