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
'개발자 > Java' 카테고리의 다른 글
Java (자바) % 연산자의 활용 나눗셈 몫, 나머지 구하기, 자릿수 구하기 (0) | 2020.03.29 |
---|---|
Java (자바) 1~100 합, 홀수합, 짝수합 구하기 (0) | 2020.03.29 |
Java (자바)의 자료형 및 범위 (0) | 2020.03.27 |
Java (자바) 숫자 입력 받기 (0) | 2020.03.26 |
Java (자바) 함수 & 단축키 모음 (0) | 2020.03.25 |