Scanner sc= new Scanner(System.in);
//실수 입력
double testNumber = sc.nextDouble();
//double(실수)=>int(정수) 형 변환
int testNumber2= (int)testNumber;
System.out.println(testNumber2);
//split으로 나누면 배열로 알아서 담김. String 아님! 그리고 정수부분과 소수부분을 .을 기반으로 나눠서 배열에 담음.
String splitNumberArray[]=(testNumber+"").split("\\.");
//0번지는 정수 1번지는 소수점
String splitNumber=splitNumberArray[1];
System.out.println(splitNumber);
실수를 입력받아
1)int로 강제 타입 변환을 통해 정수부분만 출력
2)정수이후 소수 부분을 "."(닷)으로 스플릿하여 변수에 담아 출력
형변환은 큰범위에서 작은범위는 간단한 선언, 할당을 통해 변환되지만 그 이외엔 강제변환을 시켜야 한다.
- 자동 타입 변환
큰 허용 범위 타입 = 작은 허용 범위 타입 작성해주면 자동으로 변환이 된다.
int var1 = 2;
dobule var2 = a;
//큰 범위 작은범위
또한 char타입도 변경이 되는데 char 타입을 int로 변환할 경우 유니코드 값이 int 타입에 저장된다.
char var1 = 'A';
int var2 = var1;
//var2==65
하지만! byte타입으로 변환은 안된다! byte는 char보다 작은타입이지만 char는 음수를 미포함, byte는 음수를 포함하기 때문이다.
\
- 강제 타입 변환
작은 허용 범위 타입 = (작은 허용 범위 타입) 큰 허용범위 타입
double var1=2.5;
int a=(int)var1;
//double=>int로 타입 변환. int는 정수만 포함하기에 2만 담긴다.
첫번째 코드의 5번째줄에서 큰 허용범위에서 작은범위로 타입을 변환해주는데 위에 설명한것 처럼 작은타입에서 큰 타입은 선언으로 자동변환되지만 그렇지 않은경우 강제 변환을 해주어야 한다.
'Algorithm > 코드업 100제' 카테고리의 다른 글
코드업(100제) JAVA - 1026 [시분초 입력받아 분만 출력하기] (0) | 2021.11.29 |
---|---|
코드업(100제) JAVA - 1025 [ 정수 1개 입력받아 나누어 출력하기] (0) | 2021.11.29 |
코드업(100제) JAVA - 1024 [기초-입출력] 단어 1개 입력받아 나누어 출력하기 (0) | 2021.11.22 |
코드100제(JAVA) - 1020,1021 (2) | 2021.11.20 |
코드업 100제(JAVA) - 1018 [기초-입출력] 시간 입력받아 그대로 입출력하기 (0) | 2021.11.15 |