4-3-2.¸í½ÃÀû º¯È¯

¸í½ÃÀû º¯È¯Àº °³¹ßÀÚ°¡ ¾î¶² ŸÀÔÀ» ¾î¶»°Ô ¹Ù²Ù¶ó°í ÄÄÆÄÀÏ·¯¿¡°Ô Áö½ÃÇÏ´Â °ÍÀÌ´Ù. (int), (double)°ú °°ÀÌ °ýÈ£ ¾È¿¡ º¯È¯ÇÒ Å¸ÀÔÀ» ¹àÈ÷´Â ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÑ´Ù. º¯¼öÀÇ °ª ¹üÀ§°¡ ºÐ¸íÇÒ ¶§´Â ¸í½ÃÀû º¯È¯µµ ¾ÈÀüÇÏ´Ù. ¿¹¸¦ µé¾î int ŸÀÔÀÇ Age º¯¼ö°¡ »ç¶÷ÀÇ ³ªÀ̸¦ ±â¾ïÇÑ´Ù¸é Åë»ó 1~100 ¹üÀ§ÀÇ °ªÀ» °¡Áö¸ç ƯÀÌÇÏ°Ô ¸¹¾Æµµ 150À» ³ÑÁö ¾Ê´Â´Ù. ±×·¡¼­ ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© short³ª byteÇü º¯¼ö¿¡ ¾ÈÀüÇÏ°Ô ´ëÀÔÇÒ ¼ö ÀÖ´Ù.

 

int Age = 25;

short sAge = (short)Age;

 

Age¿¡ (short) ij½ºÆ® ¿¬»êÀÚ¸¦ Àû¿ëÇÏ¸é ¾çº¯ÀÇ Å¸ÀÔÀÌ ÀÏÄ¡ÇÏ¿© short ŸÀÔÀÇ sAge º¯¼ö¿¡ ´ëÀÔÇÒ ¼ö ÀÖ´Ù. ij½ºÆ® ¿¬»êÀÚ¸¦ »© ¹ö¸®¸é ÄÄÆÄÀÏ·¯´Â ÀÌ ´ëÀÔÀÌ À§ÇèÇÏ´Ù°í ÆÇ´ÜÇÏ¿© ¿¡·¯·Î ó¸®ÇÑ´Ù. ÄÄÆÄÀÏ·¯´Â ŸÀÔÀÇ ¸ð¾ç¸¸ Á¡°ËÇÒ »ÓÀ̸ç AgeÀÇ °¡´ÉÇÑ ¹üÀ§°¡ 1~150 Á¤µµ¶ó´Â ³í¸®ÀûÀÎ »ç½Ç±îÁö ÆľÇÇÒ ¼ö ¾ø´Ù.

ÀÌ·²¶§ °³¹ßÀÚ°¡ "±¦ÂúÀ¸´Ï±î ±×³É ´ëÀÔÇØ"¶ó°í ¸í·ÉÇÏ´Â °ÍÀÌ Ä³½ºÆ® ¿¬»êÀÚÀÌ´Ù. ÄÄÆÄÀÏ·¯´Â »ç¿ëÀÚ°¡ Age¸¦ short·Î ¹Ù²Ù¶ó°í Çã¶ôÇßÀ¸¹Ç·Î ÀÌ Áö½Ã¸¦ ¼ø¼øÈ÷ µû¸¥´Ù. ´Ü, ij½ºÆà ÈÄÀÇ ¸ðµç ºÎÀÛ¿ëÀº °³¹ßÀÚÀÇ Ã¥ÀÓÀÌ´Ù. Å« ŸÀÔÀ» ÀÛÀº ŸÀÔÀ¸·Î ij½ºÆÃÇÏ¸é °ªÀÇ ¼Õ½ÇÀÌ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù.

 

casterror

½ÇÇà°á°ú

using System;

 

class CSTest {

     static void Main() {

          int i = 123456;

          short s = (short)i;

          Console.WriteLine(s);

     }

}

-7616

 

short ŸÀÔÀÇ º¯¼ö s¿¡ int ŸÀÔÀ» ´ëÀÔÇß´Ù. ÀÏ´Ü ÄÄÆÄÀÏÀº µÇÁö¸¸ 16ºñÆ® ±æÀÌÀÇ s°¡ 123456À» ÀúÀåÇÒ ¼ö´Â ¾ø´Ù. Á¤¼ö°ª Áß ÀϺδ Àß·Á ³ª°¡ s¿¡´Â -7618ÀÌ ´ëÀԵǸç ÇÁ·ÎÁ§Æ® ¼³Á¤¿¡ µû¶ó¼­´Â ¿À¹öÇÃ·Î¿ì ¿¹¿Ü°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ´Ù. ½Ç¼ö¸¦ Á¤¼ö¿¡ ´ëÀÔÇÒ ¶§µµ °ªÀÇ ÀϺΰ¡ ¼Ò½ÇµÈ´Ù.

 

double d = 123.456;

int i = (int)d;

Console.WriteLine(i);

 

½Ç¼ö¸¦ Á¤¼ö¿¡ ¾ïÁö·Î ´ëÀÔÇÏ¸é ¼Ò¼öºÎ ÀÌÇϸ¦ ¹ö¸®°í Á¤¼öºÎ¸¸ ³²´Â´Ù. ÀÌó·³ ¼Õ½ÇÀ̳ª Á¤È®µµ°¡ Èñ»ýµÉ ¶§´Â ¾Ï½ÃÀû º¯È¯À» Çã¿ëÇÏÁö ¾Ê´Â´Ù. ´ë½Å ¸í½ÃÀû º¯È¯¸¸ Çã¿ëÇϴµ¥ À̶§ °³¹ßÀÚ´Â ¾î¶² °á°ú°¡ ³ª¿Ã °ÍÀÓÀ» ¿¹ÃøÇÏ°í °á°ú¿¡ ´ëÇØ Ã¥ÀÓÀ» Á®¾ß ÇÑ´Ù.

¿­°ÅÇü°ú Á¤¼öÇü »çÀÌÀÇ º¯È¯¿¡µµ ij½ºÆ® ¿¬»êÀÚ°¡ ÇÊ¿äÇÏ´Ù. Á¤¼öÇüÀÌ ´õ Å« ŸÀÔÀÌÁö¸¸ ¿­°ÅÇüÀÇ ³»ºÎ ŸÀÔÀÌ ulongÀ̶ó¸é intÇüÀ¸·Î ¾ÈÀüÇÏ°Ô ´ëÀÔµÇÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù. double°ú decimal »çÀÌÀÇ º¯È¯¿¡µµ ij½ºÆÃÀÌ ÇÊ¿äÇÏ´Ù.

 

double d = 1.23;

decimal m = 4.56m;

d = (double)m;

m = (decimal)d;

 

decimalÀÌ ´õ Å« ŸÀÔÀÌÁö¸¸ ³»ºÎ ±¸Á¶°¡ ¿ÏÀüÈ÷ ´Þ¶ó °ªÀÇ ¼Õ½ÇÀÌ ¹ß»ýÇÒ ¼ö ÀÖ´Ù. doubleÀº ±¹Á¦ Ç¥ÁØÀÇ ºÎµ¿ ¼Ò¼öÁ¡ Æ÷¸ËÀ¸·Î µÇ¾î ÀÖ°í decimalÀº Á¤¹Ðµµ¸¦ ³ôÀ̱â À§ÇÑ °íÀ¯ Æ÷¸ËÀ¸·Î µÇ¾î ÀÖ´Ù. ±×·¡¼­ ÀÌ µÎ ŸÀÔ°£¿¡µµ ij½ºÆÃÀÌ ²À ÇÊ¿äÇÏ´Ù.

¼öÄ¡°ª³¢¸®´Â ¾à°£ÀÇ ¼Õ½ÇÀÌ ÀÖ´õ¶óµµ ¸í½ÃÀû º¯È¯ÀÌ °¡´ÉÇÏ´Ù. ¹Ý¸é ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇÏ´õ¶óµµ º¯È¯ÀÌ Çã°¡µÇÁö ¾Ê´Â °æ¿ìµµ ÀÖ´Ù. ¹®ÀÚ¿­°ú bool ŸÀÔÀº ¼öÄ¡ÇüÀ¸·Î º¯È¯ÇÒ ¼ö ¾ø´Ù. ÀÌ·± °æ¿ì´Â ¸í½ÃÀû º¯È¯º¸´Ù ÇÑ´Ü°è ´õ ³ôÀº º¯È¯ÀÎ °­Á¦Àû º¯È¯À» ÇØ¾ß ÇÑ´Ù.

 

bool b = true;

int i = (int)b;

 

³í¸®ÇüÀÇ °ªÀ» Á¤¼ö¿¡ ´ëÀÔÇϱâ À§ÇØ (int) ij½ºÆ® ¿¬»êÀÚ¸¦ »ç¿ëÇßÁö¸¸ Çã°¡µÇÁö ¾Ê´Â´Ù. bool ÇüÀÇ true, false´Â »óŸ¦ ³ªÅ¸³»´Â »ó¼öÀÌÁö ¼öÄ¡°ªÀÌ ¾Æ´Ï´Ù. Á¤ º¯È¯ÇÏ·Á¸é if (b) i = 1; else i = 0; Á¶°Ç¹®À» »ç¿ëÇÏ¿© trueÀÏ ¶§ 1, falseÀÏ ¶§ 0À¸·Î ´ëÀÀ½ÃÄÑ ÁÖ¾î¾ß ÇÑ´Ù. ¶Ç´Â i = b ? 1:0; Á¶°Ç½Äµµ °¡´ÉÇÏ´Ù.

À̶§ 1°ú 0Àº ¾îµð±îÁö³ª ÀÓÀÇ°ªÀÌ´Ù. true°¡ 1ÀÌ°í false°¡ 0À̶ó´Â ±ÔÄ¢Àº C¾ð¾î¿¡¼­ ÆíÀÇ»ó Á¤ÀÇÇÑ °ÍÀÏ »Ó ¼öÇÐÀû Áø½ÇÀÌ ¾Æ´Ï´Ù. C#Àº ³í¸®Çü°ú ¼öÄ¡ÇüÀ» ¿ÏÀüÈ÷ ´Ù¸£°Ô ±¸ºÐÇÑ´Ù. ¹®ÀÚ¿­µµ ¸¶Âù°¡Áö·Î ij½ºÆ® ¿¬»êÀÚ¸¦ ÅëÇØ Á¤¼öÇüÀ¸·Î º¯È¯ÇÒ ¼ö ¾ø´Ù. ´ÙÀ½ Äڵ尡 °¡´ÉÇÒ °Í °°Àº°¡?

 

string s = "1234";

int i = (int)s;

 

¹®ÀÚ¿­°ú ¼öÄ¡´Â ³»ºÎÀûÀÎ Æ÷¸ËÀÌ ¿ÏÀüÈ÷ µýÆÇÀ̾ ij½ºÆ® ¿¬»êÀÚ°°Àº °£´ÜÇÑ ¹æ¹ýÀ¸·Î´Â º¯È¯ÇÒ ¼ö ¾ø´Ù. Á» ´õ º¹ÀâÇÑ Äڵ尡 ÇÊ¿äÇÏ¸ç ±×·¡¼­ º°µµÀÇ º¯È¯ ¹æ¹ýÀÌ Á¦°øµÈ´Ù. System ³×ÀÓ½ºÆäÀ̽ºÀÇ Convert Ŭ·¡½º¿¡´Â °¢Á¾ ŸÀÔÀ» º¯È¯ÇÏ´Â Á¤Àû ¸Þ¼­µå°¡ Á¤ÀǵǾî ÀÖ´Ù.

 

¸Þ¼­µå

¼³¸í

ToInt16

16ºñÆ® Á¤¼ö·Î º¯È¯ÇÑ´Ù.

ToInt32

32ºñÆ® Á¤¼ö·Î º¯È¯ÇÑ´Ù.

ToUInt16

ºÎÈ£¾ø´Â 16ºñÆ® Á¤¼ö·Î º¯È¯ÇÑ´Ù.

ToUInt32

ºÎÈ£¾ø´Â 32ºñÆ® Á¤¼ö·Î º¯È¯ÇÑ´Ù.

ToDouble

double ŸÀÔÀ¸·Î º¯È¯ÇÑ´Ù.

ToString

¹®ÀÚ¿­·Î º¯È¯ÇÑ´Ù.

ToBoolean

³í¸®ÇüÀ¸·Î º¯È¯ÇÑ´Ù.

 

ToXXX ½ÄÀ¸·Î º¯È¯ ÈÄÀÇ Å¸ÀÔÀ» °¡¸®Å°¸ç º¯È¯ ´ë»óÀº Àμö·Î ÁöÁ¤ÇÑ´Ù. ToXXX(YYY) Çü½ÄÀ¸·Î YYY ŸÀÔÀ» XXX·Î º¯È¯ÇÑ´Ù. ´ëÇ¥ÀûÀ¸·Î ToInt32 ¸Þ¼­µåÀÇ ¿øÇüÀ» º¸¸é °¢ ŸÀÔ¿¡ ´ëÇØ 19°³ÀÇ ¹öÀüÀ¸·Î ¿À¹ö·ÎµùµÇ¾î ÀÖ¾î À¢¸¸ÇÑ Å¸ÀÔÀº ´Ù º¯È¯ÇÒ ¼ö ÀÖ´Ù.

 

Convert.ToInt32 (Boolean)

Convert.ToInt32 (Byte)

Convert.ToInt32 (Char)

Convert.ToInt32 (Double)

Convert.ToInt32 (String)

....

 

´ÙÀ½ ÄÚµå´Â ¹®ÀÚ¿­À» Á¤¼ö·Î º¯È¯ÇÑ´Ù. »ç¿ëÀڷκÎÅÍ ÀԷ¹ÞÀº ¼öÄ¡°ªÀ̳ª ÆÄÀÏ¿¡¼­ ÀÐÀº °ªÀ» ¿¬»êÇÏ·Á¸é ¼öÄ¡ ŸÀÔÀ¸·Î ¹Ù²ã¾ß ÇÑ´Ù. ¿¬»ê °¡´ÉÇÑÁö Å×½ºÆ®Çϱâ À§ÇØ º¯È¯ ÈÄ 1 Áõ°¡½ÃÄ×´Ù.

 

strtoint

½ÇÇà°á°ú

using System;

 

class CSTest {

     static void Main() {

          string s = "1234";

          int i = Convert.ToInt32(s);

          i++;

          Console.WriteLine(i);

     }

}

1235

 

º¯È¯ ¸Þ¼­µå°¡ Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏ·Á¸é º¯È¯ ´ë»óÀÇ °ªÀÌ ÀûÇÕÇØ¾ß ÇÑ´Ù. Á¤¼ö·Î º¯È¯ÇÒ ¹®ÀÚ¿­¿¡´Â ¾Æ¶óºñ¾Æ ¼ýÀÚ¿Í ºÎÈ£¸¸ ÀÖ¾î¾ß ÇÏ¸ç ±× ¿ÜÀÇ ¹®ÀÚ°¡ À־´Â ¾ÈµÈ´Ù. ¸¸¾à "123¹¹¹¹", "´Ï¸¾´ë·Î" °°Àº ¹®ÀÚ¿­À» Á¤¼ö·Î º¯È¯ÇÏ·Á°í ½ÃµµÇϸé FormatException ¿¹¿Ü°¡ ¹ß»ýÇÑ´Ù. ½Ç¼öÀÇ °æ¿ì´Â ¼Ò¼öÁ¡µµ Æ÷ÇÔÇÑ´Ù. °¢ ŸÀÔÀÌ Á¦°øÇÏ´Â Parse Á¤Àû ¸Þ¼­µå¸¦ ÅëÇØ ¹®ÀÚ¿­ ŸÀÔÀ» ÇØ´ç ŸÀÔÀ¸·Î º¯È¯ÇÑ´Ù. Parse ¸Þ¼­µå·Î ¹®ÀÚ¿­À» Àü´ÞÇÏ¸é ¹®ÀÚ¿­ ³»ÀÇ °ªÀ» Àд´Ù.

 

string s = "1234";

int i = int.Parse(s);

 

Parseµµ ÀûÇÕÇÑ °ªÀ» °¡Áø ¹®ÀÚ¿­¸¸ Á¦´ë·Î º¯È¯ÇÑ´Ù. ¼öÄ¡ÇüÀ» ¹®ÀÚ¿­·Î º¯È¯ÇÒ ¶§´Â ToString ¸Þ¼­µå¸¦ »ç¿ëÇÑ´Ù.

 

int i = 1234;

string s = i.ToString();

 

ÀÌ º¯È¯¿¡ ÀÇÇØ °ª 1234°¡ "1234" ¹®ÀÚ¿­ÀÌ µÈ´Ù. ToString ¸Þ¼­µå´Â ·çÆ® Ŭ·¡½ºÀÎ object°¡ Á¦°øÇÏ¸ç µû¶ó¼­ ¸ðµç ŸÀÔÀº ¹®ÀÚ¿­·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù. µð¹ö±ë ¸ñÀûÀ¸·Î º¯¼öÀÇ ÇöÀç°ªÀ» È­¸é¿¡ Âï¾î º»´Ù°Å³ª ·Î±×¸¦ ³²±æ ¶§ ToStringÀÌ Á¾Á¾ »ç¿ëµÈ´Ù.