[프로그래밍언어, C] Type Casting(타입캐스팅, 형 변환)
2017. 3. 12. 17:53ㆍ9급 공무원/컴퓨터 일반
float i; i=100/300; // (1) printf("%.2f\n",i); i=(float)(100/300); // (2) printf("%.2f\n",i); i=(float)100/300; // (3) printf("%.2f\n",i); i=100/300.0; // (4) printf("%.2f\n",i);
출력 :
0.00
0.00
0.33
0.33
출력결과와 같이
정수간의 나눗셈 연산이 이루어질 경우 소수점 자리는 버려진다. 변수에 값이 들어가면서 형변환이 되는 것이 아니라 애초에 형변환이 없다!(1)
1/3 = 0 (0.33.. 인데 소수점 아래 버려짐)
연산의 결과에 형변환을 시켜봐야 어차피 (100/300) 이 0이 되기 때문에 아무런 의미가 없다.(2)
소수점을 포현하고 싶으면 피연산자 하나를 float형으로 형변환해주어야 한다. 둘중의 숫자를 형 변환 시켜주든지(3), 소수점까지 표현을 해주어야 한다.
* 묵시적 형변환 : 두 피연산자의 자료형이 다를 경우 더 큰 자료형에 맞추어 계산된다! (대입연산의 경우는 왼쪽 자료의 형에 맞추어짐)
'9급 공무원 > 컴퓨터 일반' 카테고리의 다른 글
2017 지방직 9급 추가선발 컴퓨터 일반 문제, 해설(하반기) (C책형) (4) | 2017.12.18 |
---|---|
[데이터통신] 공개키 기반구조(PKI) 구성요소 (0) | 2017.12.13 |
[프로그래밍언어, C] 포인터 변수와 연산자 우선순위 (0) | 2017.03.12 |
[인터넷] Ajax(Asynchronous Javascript and XML) (0) | 2017.03.10 |
[인터넷] P3P(Platform for Privacy Preferences) (0) | 2017.03.10 |