Java int, double -> String, String -> int, double




결과

결과





코드

public static void main(String[] args) {
		String s = "100";
		int num = 10;
		double num2 = 12.34;
		
		System.out.println("--- String -> int, double ---");
		System.out.print("변환 전 덧셈 : ");
		System.out.println(s+5);
		System.out.print("변환 후 덧셈 : ");
		System.out.println(Integer.parseInt(s)+5);
		System.out.print("Double로 변환 : ");
		
		System.out.println(Double.parseDouble(s));
		
		System.out.println("\n--- int -> String ---");
		if(String.valueOf(num) instanceof String)
			System.out.println("num은 String이다.");
		if(num2+"" instanceof String)
			System.out.println("num2은 String이다");
		
	}





String -> int, double

- int형으로 변환할 때는 Integer.parseInt(String s) 를 사용한다.


- double형으로 변환할 때는 Double.parseDouble(String s) 를 사용한다.


- "String + int =" 일경우 int가 String으로 자동으로 변환되어 연산된다.

 따라서, 형변환 전 연산한 값과 형변환 후 연산 값은 다른 결과를 얻는다.  





int, double -> String

- String.valueOf( int num)를 사용하여서 String으로 형변환할 수 있다. 

 valueOf 메소드는 오버로드로 여러 타입이 선언되어 있어 Double형이나 Char형으로도 변환할 수 있다.


- 또는, 간단하게 ""를 더해주면 String형으로 변환된다.









Java 형변환





1. 자동 형변환

> 큰 크기 타입 = 작은 크기 타입; 


: 작은 크기의 타입이 큰 크기의 타입에 저장될 때 발생한다.



ㄴ 타입 크기 비교

byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)


ㄴ 연산 시에도 이러한 자동 형변환이 일어나는데, 연산을 한다면 작은 타입이 큰 타입으로 형변환되어 연산을 한다.

예를 들어 [int형 + double형]을 연산하면 작은 타입의 int형이 double형으로 형변환하여 연산되고 double형을 결과로 얻는다.


ㄴ char형은 범위가 0~65535으로 음수 저장이 불가능하다. 따라서 byte나 short형을 char형으로 자동 형변환 하려고 하면 에러가 발생한다.






2. 강제 형변환

> 작은 크기 타입 = (작은 크기 타입) 큰 크기 타입; 


: 자동 형변환와 달리 큰 크기 타입을 작은 크기 타입으로 형변환한다. 크기가 적어짐으로써 저장된 값이 손상될 수도 있으므로 사용할 때는 주의하여야 한다.






'JAVA > 기초' 카테고리의 다른 글

Java static 정적 변수, 메소드  (0) 2020.03.17
Java 배열 기본값, 배열 복사  (0) 2020.03.16
Java 향상된 for문, label  (0) 2020.03.16
Java 데이터 타입  (0) 2020.03.15
JAVA(자바) - Stack(스택)  (0) 2019.05.16

+ Recent posts