java/코드 리뷰

2. datatype - (5) DataTypeDemo5

Astaroth아스 2020. 3. 20. 08:54
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package datatype;
 
public class DataTypeDemo5 {
    public static void main(String[] args) {
        
        /* 기본자료형의 형변환 */
        //자동 형변환
        //--> 컴파일러가 알아서 타입을 변환한다.
        //--> 크기가 작은 타입을 값의 크기가 큰 타입으로 변환시키는 것이다.
        //--> 정밀도가 낮은 타입의 정밀도가 높은 타입으로 변환시키는 것이다.
        //--> 값의 손실이 발생하지 않는 타입변환이다.
        
        //정수(int) → 실수(double) : 4Byte 정수를 8Byte 실수에 담기
        double a = 3;            // 3 → 3.0
        
        //정수(int) → 정수(long) : 4Byte 정수를 8Byte long형 정수에 담기
        int b = 30;
        long c = b;                //30 → 8Byte 30으로 변환 → c에 대입
        
        //정수(int) → 실수(float) : 4Byte 정수(낮은 정밀도)를 4Byte 실수형(높은 정밀도)변수에 담기
        float d = b;            //30 → 30/0으로 변환 → d에 대입
        
        //연산의 결과는 연산에 참여한 값의 타입과 동일한 타입의 값이 나온다.
        System.out.println(2/3);        // 정수/정수 → 결과 : 정수
        System.out.println(2/3.0);        // 정수/실수 → 결과 : 실수
        
        
        //수동 형변환
        //--> 개발자가 직접 변환할 타입을 지정해서 형변환을 시킨다.
        
        //실수 → 정수로 변환하는 것
        //데이터의 손실이 발생하는 변환임. 컴파일러가 3.14를 3으로 변환하지 않고 오류를 표시함
        //(int)로 형변환 의사를 직접 표시한다.
        //double → float → long → int → char → short → byte
        int x = (int3.14;
        System.out.println(x);
        
        int y = (int) (67.5/3.14);
        System.out.println(y);
        
        double z = (double)(70 + 42 + 88)/3;
        System.out.println(z);
    }
}