ÀÚ·áÇüÀÌ ´Ù¸¥ º¯¼ö³¢¸®ÀÇ ¿¬»êÀº
¾î¶»°Ô µÉ±î¿ä? Á¤¼öÇü³¢¸®ÀÇ ¿¬»êÀº
Á¤¼öÇüÀÌ µË´Ï´Ù. Áï, printf("%d",
3 /2); ÀÇ °á°ú´Â ´ç¿¬È÷
1ÀÔ´Ï´Ù. ±×·¯¸é Á¤¼öÇü°ú ½Ç¼öÇüÀ» ¿¬»êÇϸé
±× °á°ú´Â ½Ç¼öÇüÀÌ
µË´Ï´Ù.
C¾ð¾î¿¡¼´Â
Á¤¼öÇü°ú ½Ç¼öÇüÀÇ ¿¬»êÀº
Á¤¼öÇüÀ» ÀÚµ¿À¸·Î ½Ç¼öÇüÀ¸·Î
º¯È¯ÇÑ ´ÙÀ½¿¡ ¿¬»êÀ»
ÇϹǷΠ±× °á°ú°¡
½Ç¼öÇüÀÌ µË´Ï´Ù. Å©±â°¡ Å«
ÀÚ·áÇü°ú Å©±â°¡ ÀÛÀº
ÀÚ·áÇüÀÌ ¿¬»êÀ» Çϸé
Å« ÀÚ·áÇüÀ¸·Î ÀÚµ¿
º¯È¯µÇ¾î ¿¬»êÀÌ µË´Ï´Ù.
|
¿¬»ê |
°á°ú |
¼ö½Ä
¡æ °á°ú |
|
int
¿¬»êÀÚ int |
int |
3/2
¡æ 1 |
|
int
¿¬»êÀÚ float |
float |
3
/2.0 ¡æ 1.5 |
|
float
¿¬»êÀÚ int |
float |
3.0
/ 2 ¡æ 1.5 |
|
float
¿¬»êÀÚ double |
double |
3.0
/ 2.0 ¡æ 1.5 |
|
double
¿¬»êÀÚ float |
double |
3.0
/ 2.0 ¡æ 1.5 |
¡¼¼Ò½º
ÇÁ·Î±×·¥¡½
// File Name : ex059_cast_01.c
#include<stdio.h>
int main(){
float n1=3.14;
double n2=3.141592;
printf("floatÇüÀÇ
Å©±â=%d\n", sizeof(n1));
printf("doubleÇüÀÇ
Å©±â=%d\n", sizeof(n2));
printf("floatÇü°ú doubleÇüÀÇ ¿¬»ê°á°úÀÇ Å©±â=%d\n",
sizeof(n1/n2));
printf("3.14
/3.141592 =%f\n", n1/n2);
return 0;
}
¡¼½ÇÇà
°á°ú¡½
floatÇüÀÇ Å©±â=4
doubleÇüÀÇ Å©±â=8
floatÇü°ú doubleÇüÀÇ ¿¬»ê°á°úÀÇ Å©±â=8
3.14 /3.141592 =0.999493
sizeof ¿¬»êÀÚ¸¦ »ç¿ëÇϸé
floatÇü°ú
doubleÇüÀÇ
¿¬»ê°á°ú°¡ doubleÇüÀÎ °ÍÀ» ¾Ë
¼ö ÀÖ½À´Ï´Ù. Çü º¯È¯
¿¬»êÀÚ(Cast
operator)´Â º¯¼ö³ª »ó¼öÀÇ ÀÚ·áÇüÀ»
ÀϽÃÀûÀ¸·Î ¹Ù²Ù¾îÁÖ´Â ¿¬»êÀÚÀÔ´Ï´Ù.
¡¼Çü½Ä¡½
(Çü º¯È¯ ÀÚ·áÇü)º¯¼ö ¶Ç´Â »ó¼ö;
Áï, ÀÚ·áÇüÀ» ¹Ù²Ù°íÀÚÇÏ´Â º¯¼ö³ª »ó¼ö
¾Õ¿¡ Çü º¯È¯
ÀÚ·áÇüÀ» ½áÁÝ´Ï´Ù.
¡¼¼Ò½º
ÇÁ·Î±×·¥¡½
#include <stdio.h>
int main(void){
int wriExam=85,
pracExam=90, total;
float ave;
total = wriExam+
pracExam;
ave = (float)total /
2; -----------¨ç
printf("ÇÕ°è= %d Æò±Õ=%.2f", total, ave);
return 0;
}
¡¼½ÇÇà
°á°ú¡½
ÇÕ°è= 175 Æò±Õ= 87.50
À§ ÇÁ·Î±×·¥ÀÇ ¨ç¹ø
¹®Àå¿¡¼ Çü º¯È¯
¿¬»êÀÚ¸¦ ¾²Áö ¾Ê°í
¿¬»êÀ» ¼öÇàÇϸé Á¤¼öÇü°ú
Á¤¼öÇüÀÌ ¿¬»êÇÏ°ÔµÇ¾î °á°ú
°ªÀº Á¤¼öÇüÀÌ µÇ¹Ç·Î 87ÀÌ µË´Ï´Ù. ÀÌ °ªÀ» ´Ù½Ã
ºÎµ¿¼Ò¼öÁ¡Çü º¯¼ö¿¡ ±â¾ï½ÃÄѾß
ÇϹǷΠave¶ó´Â ±â¾ï Àå¼Ò¿¡´Â 87.0ÀÌ ±â¾ïµÇ¾î À߸øµÈ °á°ú¸¦
ÀúÀåÇÏ°Ô µË´Ï´Ù. ±×·¯¹Ç·Î total¸¦ ½Ç¼öÇüÀ¸·Î º¯È¯ÇÏ¿©
175.0À¸·Î
¹Ù²Û ´ÙÀ½¿¡ 2·Î ³ª´©¾î¾ß
Á¦´ë·Î µÈ °ªÀ»
¾òÀ» ¼ö ÀÖ½À´Ï´Ù. ÀÌó·³ ÀڷḦ ¿¬»êÇÒ ¶§´Â
ƯÈ÷ ÀÚ·áÇü¿¡ ÁÖÀÇÇÏ¿©¾ß
ÇÕ´Ï´Ù.
¹°·Ð ¨ç¹ø ¹®Àå¿¡¼ ave = total / 2.0; À¸·Î ÇÏ¿©µµ µÇÁö¸¸
2´Â °³¼öÀε¥ 2.0À¸·Î ¾²´Â °ÍÀº
ÇÕ¸®ÀûÀÌÁö ¾ÊÀ¸¹Ç·Î ave = (float)total / 2;À¸·Î Çü¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿©
ÇÁ·Î±×·¡¹ÖÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÕ´Ï´Ù.