[백준 단계별/JAVA] 1단계. 입출력과 사칙연산 (BigDeciaml 등)
1. [2557번] Hello World
public class Main {
public static void main(String[] args) {
System.out.print("Hello World!");
}
}
2. [10718번] We love kriii
public class Main {
public static void main(String[] args) {
System.out.println("강한친구 대한육군");
System.out.print("강한친구 대한육군");
}
}
3. [10171번] 고양이
public class Main {
public static void main(String[] args){
System.out.println("\\ /\\"); // "\"출력 -> "\\"로 입력
System.out.println(" ) ( ')");
System.out.println("( / )");
System.out.println(" \\(__)|");
}
}
백슬래시를 출력하기 위해서는 앞에 백슬래시를 한번 더 입력해야 한다.
4. [10172번] 개
public class Main {
public static void main(String[] args) {
System.out.println("|\\_/|");
System.out.println("|q p| /}");
System.out.println("( 0 )\"\"\"\\"); // " 출력 -> \" 입력
System.out.println("|\"^\"` |");
System.out.print("||_/=\\\\__|");
}
}
" 을 출력하기 위해서는 앞에 백슬러시를 추가해야 한다.
5. [1000번] A+B
import java.util.*; //Scanner를 사용하기 위해 추가
public class Main {
public static void main(String[] args) {
int num1, num2;
Scanner scanner = new Scanner(System.in); //스캐너 클래스 객체 생성
num1 = scanner.nextInt(); //num1 변수에 숫자를 입력받음.
num2 = scanner.nextInt();
System.out.println(num1 + num2);
}
}
6. [1008번] A/B
import java.util.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.math.MathContext;
public class Main {
public static void main(String[] args) {
BigDecimal num1, num2;
Scanner scanner = new Scanner(System.in);
num1 = scanner.nextBigDecimal();
num2 = scanner.nextBigDecimal();
System.out.print(num1.divide(num2, MathContext.DECIMAL128));
}
}
※ 큰 실수 다루기: BigDecimal !
double 무엇이 문제인가?
소수점 이하의 수를 다룰 때 double 타입은 사칙연산시 기대한 값과 다른 값을 출력한다.
이유는 double 타입이 내부적으로 수를 저장할 때 이진수의 근사치를 저장하기 때문이다. 저장된 수를 다시 십진수로 표현하면서 문제가 발생한다. BigDecimal 타입은 내부적으로 수를 십진수로 저장하여 아주 작은 수와 큰 수의 연산에 대해 거의 무한한 정밀도를 보장한다
DECIMAL128: IEEE 754-2008에 의해 표준화된, 부호와 소수점을 수용하며, 최대 34자리까지 표현 가능한 10진수를 저장할 수 있는 형식이다.
♨ BigDecimal 비교 연산
♨ BigDecimal 사칙 연산
참고.
https://jsonobject.tistory.com/466
Java, BigDecimal 사용법 정리
BigDecimal? BigDecimal은 Java 언어에서 숫자를 정밀하게 저장하고 표현할 수 있는 유일한 방법이다. 소수점을 저장할 수 있는 가장 크기가 큰 타입인 double은 소수점의 정밀도에 있어 한계가 있어 값이
jsonobject.tistory.com