¸í½ÃÀû º¯È¯Àº °³¹ßÀÚ°¡ ¾î¶² ŸÀÔÀ» ¾î¶»°Ô ¹Ù²Ù¶ó°í ÄÄÆÄÀÏ·¯¿¡°Ô Áö½ÃÇÏ´Â °ÍÀÌ´Ù. (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;
¹®ÀÚ¿°ú ¼öÄ¡´Â ³»ºÎÀûÀÎ Æ÷¸ËÀÌ ¿ÏÀüÈ÷ µýÆÇÀÌ¾î¼ Ä³½ºÆ® ¿¬»êÀÚ°°Àº °£´ÜÇÑ ¹æ¹ýÀ¸·Î´Â º¯È¯ÇÒ ¼ö ¾ø´Ù. Á» ´õ º¹ÀâÇÑ Äڵ尡 ÇÊ¿äÇÏ¸ç ±×·¡¼ º°µµÀÇ º¯È¯ ¹æ¹ýÀÌ Á¦°øµÈ´Ù. 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ÀÌ Á¾Á¾ »ç¿ëµÈ´Ù.