BigInteger는 몇 번 써 봤지만 BigDecimal은 한 번도 안 써봐서 몰랐다가
그 존재를 알게해준 문제이다.
처음엔 double로 삽질하다가 BigDouble이 있을까 해서 쳐봤는데, 없었다.
덕분에 더 삽질을 했었다.. 아무튼 BigInteger같이 큰 수를 표현해주는 객체가
BigDecimal이라고 소수에도 있었다.
사용법은 BigInteger랑 비슷한데
다른 점이 있다.
소수를 표현하고 그것을 출력할 때 방식인데.
이 문제도 BigDecimal에 담아서 제곱한 값을 그대로 출력하면
어떠한 값에서는 지수형태로 출력을 하기 때문에 틀리게 된다.
예를 들어 예제 입력 2의
0.1 10을 입력하면
1E-10을 출력하면서 틀리게 된다.
BigDecimal의 표현방식엔 3가지의 메소드가 있다.
toString() -> 전달받은 값을 그대로 반환
toPlainString() -> 지수 표현 없이 반환
toEngineeringString() -> 지수 표현이 있다면 지수로 반환
BigDecimal에 대해 알게 해 준 문제였다.
1
2
3
4
5
6
7
|
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
BigDecimal a= sc.nextBigDecimal();
int b = sc.nextInt();
System.out.println(a.pow(b).toPlainString());
}
|
'Algorithm' 카테고리의 다른 글
백준 1937 욕심쟁이 판다 Java (0) | 2019.12.10 |
---|---|
좌표가 원의 범위안에 포함되어있는지 체크 (1) | 2019.11.14 |
백준 3055 탈출 Java (1) | 2019.10.24 |
2020 KAKAO 자물쇠와 열쇠 Java (2) | 2019.10.17 |
백준 1918 후위 표기식 Java (2) | 2019.09.25 |