1. 묵시적 형변환, 명시적 형변환

int number1 = 10;				// 정수
double number2 = 20.2;				// 실수

double number3 = number1 + number2;		// 묵시적 형변환. (정수) + (실수) 지만 어차피 숫자니까 알아서 형변환 한다.

int number4 = (int)(number1 + number2);		// 명시적 형변환. (int)(30.2)니까 30이 된다.

 

2. 잘못된 형변환으로 인한 자료 소실

short a = 3;
int b = 10;

b = (int)a;	// b에 (int로 형변환 한)a의 값을 넣어라.

얼핏 보면 문제가 없어 보인다.

short sixteen_bits = 32767;
int thrity_two_bits = 32768;

sixteen_bits = thrity_two_bits;	// 16비트인 short가 담을 수 있는 값의 범위보다 큰 값을 넣게 되면 자료가 소실된다.

물론 요즘은 프로그램이 좋아져서 Type mismatch: cannnot convert from int to short 라고 에러를 낸다.

2020/03/27 - [분류 전체보기] - Java (자바)의 자료형 및 기초

 

Java (자바)의 자료형 및 기초

자바의 대표적인 자료형에는 다음과 같은 5가지가 있다. 1. 정수 byte : 8 bits ( =1 bytes) short : 16 bits (= 2 bytes) int : 32 bits (= 4 bytes) long : 64 bits (= 16 bytes) 요즘은 CPU도 빨라지고 램도 커..

greendreamtrre.tistory.com

실제로 이런 큰 수를 생각하지 않던 과거 프로그램들은 시대가 지나고 발전되면서 문제가 되기도 했다고...

float c = 3.0f;	// float 공간으로도 충분하다는 의미로 이렇게 쓰기도 한다.
double d = 3.0;

 

3. 여러가지 표현 방식 

a = a + 1;
a += 1;
a++;

위 3개는 모두 동일하다.

a = a + 3;
a += 3;

위 2개 역시 동일하다.


마찬가지로

a = a - 1;
a -= 1;
a--;

위 3개 역시 동일하고

a = a - 5;
a -= 5;

역시 동일하다.



하지만

a += 5;	// a = a + 5;
a =+ 5;	// a = 5;

완전히 다르니 조심할 것!

 

4. 나눗셈을 할 때는 반드시 하나의 값이 실수여야한다

public class division {
	public static void main(String[] args) {

		int integer1 = 113;
		int integer2 = 8;
		double answer1 = integer1 / integer2;		// 정수 / 정수
		double answer2 = (double)integer1 / integer2;	// (실수로 형변환) / 정수
		double answer3 = integer1 / (double)integer2;	// 정수 / (실수로 형변환)
		
		System.out.println(answer1);
		System.out.println(answer2);
		System.out.println(answer3);
				
	}

}

결과 :

answer1 = 14.0
answer2 = 14.125
answer3 = 14.125

+ Recent posts