728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
import java.math.BigDecimal;
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
for (int tc = 1; tc <= t; tc++) {
BigDecimal n1 = new BigDecimal(sc.next());
BigDecimal n2 = new BigDecimal(sc.next());
System.out.println("#" + tc + " " + n1.add(n2));
}
}
}
Java에서 BigDecimal과 long long (Java에서는 long 으로 표현) 타입의 주된 차이점은 저장할 수 있는 숫자의 크기와 정밀도에 있습니다.
1. long (Java의 long long에 해당)
- 크기: Java의 long 타입은 64비트 정수를 저장할 수 있으며, 부호가 있는 정수로서 약 -9.2경에서 9.2경 사이의 범위를 가집니다.
- 정밀도: long은 정수만을 저장할 수 있으며 소수점 이하 자릿수를 표현할 수 없습니다.
- 용도: 크기가 상대적으로 작고, 고정된 범위의 정수 계산이 필요할 때 사용합니다. 또한 long 타입의 연산 속도는 BigDecimal보다 일반적으로 빠릅니다.
2. BigDecimal
- 크기: BigDecimal은 무한한 정밀도를 지원합니다. 즉, 메모리가 허용하는 한 어떤 크기의 숫자든지 저장하고 계산할 수 있습니다.
- 정밀도: BigDecimal은 사용자가 지정하는 만큼의 정밀도로 소수점 이하 숫자를 정확하게 표현할 수 있습니다. 이는 금융 계산과 같이 정밀도가 매우 중요한 상황에서 유용합니다.
- 용도: 대규모 숫자나 정밀한 소수 계산이 필요한 경우에 사용합니다. 특히 금융 분야에서 오차 없는 정확한 계산을 요구할 때 많이 사용됩니다.
주요 차이점 요약
- 저장 범위: long은 고정된 크기와 범위를 가지지만, BigDecimal은 거의 무제한적인 크기와 정밀도를 제공합니다.
- 데이터 타입: long은 기본 데이터 타입으로 메모리와 성능 효율이 좋습니다. 반면, BigDecimal은 객체 타입이며 추가 메모리 사용과 처리 시간이 더 필요합니다.
- 정밀도: BigDecimal은 소수점 이하의 정밀한 계산이 가능하며 오차 없는 연산을 지원합니다. long은 정수 연산에 제한됩니다.
이러한 차이점들은 각 데이터 타입의 선택에 중요한 고려 사항이 됩니다. 크고 복잡한 숫자의 정밀한 계산이 필요한 경우 BigDecimal을 사용하는 것이 좋고, 성능이 중요하고 정수 범위 내에서의 연산이면 long을 사용하는 것이 적합합니다.
728x90
'SW Expert Academy > SWEA D3' 카테고리의 다른 글
| [SW Expert Academy] [S/W 문제해결 기본] 8일차 - 암호문2 (0) | 2024.09.12 |
|---|---|
| [SW Expert Academy] [S/W 문제해결 기본] 1일차 - View (D3) (0) | 2024.09.12 |
| [SW Expert Academy] 새샘이의 7-3-5 게임 (D3) (0) | 2024.09.12 |
| [SW Expert Academy] [S/W 문제해결 기본] 5일차 - GNS (D3) (0) | 2024.09.12 |
| [SW Expert Academy] 상원이의 연속 합 (D3) (0) | 2024.09.11 |