1. intÇüÀ¸·Î ÇÏ¸é ¾ó¸¶±îÁö ³ªÅ¸³¾ ¼ö Àִ°¡?
intÇüÀ¸·Î ÇßÀ» °æ¿ì TestÇØ º» °á°ú·Î´Â 21¾ï±îÁö ¹Û¿¡ °è»êÀÌ ¾ÈµÇ³×¿ä.
Áï, 2,147,483,647 À» ¾Æ·¡Ã³·³ ÇØ ºÃÁÒ.
int result = Integer.parseInt("2147483646") + 1;
Àº Á¦´ë·Î °è»êÀÌ µÇ´Âµ¥,
int result = Integer.parseInt("2147483647") + 1;
ÀÇ °ªÀº -2147483648ÀÌ ³ª¿À³×¿ä...
2,147,483,647 Àº 2^(32-1) -1 ÀÔ´Ï´Ù.
2. ±×·³ longÇüÀ¸·Î ÇÏ¸é ¾ó¸¶±îÁö °¡´ÉÇÒ±î?
longÇüÀº 9,223,372,036,854,775,807 ±îÁö µË´Ï´Ù.
'Á¶' ´ÙÀ½ÀÌ '°æ'À̴ϱî 9¹é2½Ê2°æ 3õÁ¶ ±îÁö±¸³¶...
long result = Long.parseLong("9223372036854775807 ) + 1;
9223372036854775807 + 1 Àº -9223372036854775808 ·Î ³ª¿À³×¿ä.
9223372036854775807 Àº 2^(64-1)-1 ÀÔ´Ï´Ù.
[°á·Ð] µû¶ó¼ 21¾ï ÀÌ»óÀ» Ç¥ÇöÇÏ·Á¸é longÇüÀÌ ÇÊ¿äÇÔÀ» ¾Ë¼ö ÀÖ½À´Ï´Ù.
¸¸¾à ¼Ò¼öÁ¡ ÀÌÇÏ ÀÚ¸´¼öµµ Ç¥ÇöÇØ¾ß ÇÑ´Ù¸é doubleÇüÀÌ ÇÊ¿äÇÕ´Ï´Ù.
doubleÇüÀ¸·Î ÇßÀ» °æ¿ìµµ ¹Ýµå½Ã ¸¸´ÉÀÌ ¾Æ´Õ´Ï´Ù.
3. ±×·³ ÀÚ¹ÙÀÇ ÃÖ´ë ¼Ò¼öÁ¡ 󸮰¡ °¡´ÉÇÑ doubleÇüÀº ¾îµð±îÁöÀΰ¡¿ä?
1)¼Ò¼ö ÀÌÇÏÀÇ ÀÚ¸®¼ö¸¦ À¯È¿¼ýÀÚ 2ÀÚ¸®±îÁö ÇÊ¿äÇÏ´Ù¸é ±× ¼öÄ¡´Â
70Á¶(70,368,744,177,663.99) ±îÁö ÀÔ´Ï´Ù.
¾Æ·¡¿Í °°Àº ÇÁ·Î±×·¥¿¡¼
import java.text.DecimalFormat;
DecimalFormat df = new DecimalFormat("#########################.00");
double d = new Double(src.getText()).doubleValue();
d += 0.01;
textfield.setText(df.format(d) );
70368744177663.99 + 0.01 = 70368744177664 ·Î Á¦´ë·Î °è»êµÇ³ª
70368744177664.00 + 0.01 = 70368744177664.02 ·Î 0.01ÀÇ ¿ÀÂ÷°¡ ¹ß»ýÇÕ´Ï´Ù.
2)¸¸¾à doubleÇüÀ¸·Î »ç¿ëÇ쵂 ¼Ò¼ýÁ¡ ÀÌÇÏ´Â ¹«½ÃÇÑ´Ù°í ÇÑ´Ù¸é
9õ 7Á¶(9,007,100,000,000,000) ±îÁö¸¸ + 1.0 À» ÇßÀ» ¶§ Á¤È®ÇÑ ¼öÄ¡°¡ ³ª¿É´Ï´Ù.
3)¸¸¾à ¼Ò¼öÀÌÇÏ ¼¼ÀÚ¸®±îÁö ÇÊ¿äÇÏ´Ù¸é ¾îµð±îÁú±î¿ä?
8Á¶ 7õ9¹é60¾ï(8,796,093,022,207)±îÁö³×¿ä.
8796093022207 + 0.001 = 8796093022207.001 ·Î Á¤È®Çϳª
±× ´ÙÀ½ºÎÅÏ 0.001ÀÇ Â÷À̰¡ ³³´Ï´Ù.
(NOTE: ½É°¢ÇÏ°Ô Â÷À̰¡ ¹Ù·Î ¹ß»ýÇÏÁö´Â ¾ÊÁö¸¸ À§ ¼öÄ¡ ºÎÅÍ µ¡¼ÀÀ̳ª »¬¼ÀÀÌ ¾à°£ÀÇ
¿ÀÂ÷¸¦ º¸À̱⠽ÃÀÛÇÕ´Ï´Ù.)
[°á·Ð] ¿¡±Ã ÀÚ¹Ù´Â double¿Ü¿¡´Â ¾ø´Âµ¥, ¾î¶»Çϳ¶? ¼Ò¼öÀÌÇϸ¦ ¹«½ÃÇϸé 9õ 7Á¶ ±îÁö¸¸
°è»êÀÌ Á¤È®Çϰí, ¼Ò¼ö µÎÀÚ¸® ±îÁø 70Á¶°¡ ³Ñ¾î¸é ¾ÈµÇ±¸, ¼Ò¼ö ¼¼Â°ÀÚ¸®°¡Áø
8Á¶7õ¾ïÀÌ ³Ñ¾î¸é ¾ÈµÈ´Ù´õ¶ó...
¾î¼³ª...
±×·¯³ª ¾îµð±îÁö¶ó°í´Â ²À Áý¾î ¾ê±âÇÏÁø ¸øÇÏÁö¸¸, ±¹¹æºÎ °°ÀÌ ¸î ¹é¾ï ´ÜÀ§´Â
longÇü°ú doubleÇü¸¸À¸·Î °è»êÀ¸·Î ÇÏ¿©µµ ¹®Á¦´Â ¹ß»ýÇÏÁö ¾Ê°Ú³×¿ä..
±×·¯³ª ÀºÇàÀ̳ª, ±ÝÀ¶±â°ü, ±¹°¡ÀçÁ¤À» ´Ù·ç´Â ½Ã½ºÅÛÀ» ²Ù¹Ð ¶§,
¸¸¾à ±× ½Ã½ºÅÛÀÌ ÀÚ¹Ù·Î µÇ¾î ÀÖ´Ù¸é,
¼öÄ¡°¡ Á¶´ÜÀ§¸¦ ¸¦ ³Ñ¾î °¥ °æ¿ì long°ú doubleÇüÀ» »ç¿ëÇÏ¸é °è»êÀÌ
Ʋ·ÁÁø´Ù´Â °É ²À ±â¾ïÇϼ¼¿ä.
4. ±Ùµ¥, java.math.BigDecimal Àº ¹¹ÇÏ´Â °Å¿¹¿ä?
java.math.BigIntegerµµ ÀÖ´øµ¥?
import java.math.BigDecimal;
BigDecimal op1 = new BigDecimal("100000000000000000000000000000000000.01");
BigDecimal op2 = new BigDecimal("10002341234124000000000000000000.2134");
BigDecimal sum = op1.add(op2);
textArea.setText(sum.toString());
µî°ú °°ÀÌ »ç¿ëÇϴµ¥, ¾Æ¹«¸® Å« ¼ö ÀÏÁö¶óµµ ¿Ïº®ÇÏ°Ô °è»êÇØ ³À´Ï´Ù.
java.math.BigInteger ´Â Á¤¼öÇüÀ» °è»êÇÑ´Ù´Â °ÍÀ» Á¦¿ÜÇÏ°í ¶È °°½À´Ï´Ù.
NOTE: ±×·¯³ª, °æ¿ì¿¡ µû¶ó, divide¿¬»êÀÇ ¹«ÇѼҼöÀÇ °æ¿ì´Â ¿©ÀüÈ÷ ÀÚ¸´¼ö °í¹ÎÀ» Çϼžß
Çϰí, ¿¬»êÀ» À§ÇÑ ¼º´ÉÀûÀÎ À̽´µµ ÇÔ²² °í·ÁµÇ¾î¾ß °ÚÁö¿ä.
[ÁøÂ¥ °á·Ð]
³¯·Î ÅëÈÈÆó°¡Ä¡°¡ ¶³¾î Áö´Â ¿äÁò Á¶´ÜÀ§´Â ½É½ÉÂú°Ô ½Å¹®¿¡ µîÀåÇÏ´Â ¼öÄ¡ÀÔ´Ï´Ù.
ÀÌÁ¨ õ¹®ÇÐÀûÀÎ ¼ýÀÚ°¡ ¾Æ´Ï¶ó ÀÏ»óÀûÀÎ ¼ýÀÚ·Î µÇ´Â ¿äÁò µ·°è»êÀ» ÇÏ½Ç ¶§,
¾Æ¹« »ý°¢¾øÀÌ »çÄ¢¿¬»êÀ» ÇÒ °ÍÀÌ ¾Æ´Ï¶ó º¸´Ù À¯È¿ÀÚ¸®¼ýÀÚ¸¦ °í·ÁÇÏ¿© ¿¬»êÀ»
»ý°¢ÇÏ´Â ²Ä²ÄÇÑ ÇÁ·Î±×·¡¸Ó°¡ µË½Ã´Ù.... ;
¸¶Áö¸·À¸·Î °ÇÀǸ¦ ÁֽŠÀÌ¿ø°æ´Ô²² °¨»çµå¸®¸ç ¹Ý¿µÇϵµ·Ï ÇØ¾ß °Ú³×¿ä.
[PS] ÀÚ¹ÙÀÇ Default Decimal ÇüÀº floatÇüÀÌ ¾Æ´Ï¶ó doubleÇüÀÔ´Ï´Ù.
Áï float f = (float) 5.0; µî°ú °°ÀÌ cast¿¬»êÀÚ¸¦ »ç¿ëÇÏ´Â ¹Ý¸é¿¡
double d = 5.0; ÀÌ·¸°Ô »ç¿ëÇÒ ¼ö ÀÖ´Â °ÅÁÒ.
±¸Å¿© ÀÚ¹Ù¿¡¼ floatÇüÀ» ¾µ ÀÏÀº ¾ø´Ù°í º¸¿©Áý´Ï´Ù. À¯È¿¼ýÀÚ ÀÚ¸®¼ö¸¸ ³·¾ÆÁú »ÓÀÌÁÒ.
ÀÚ¹Ù¼ºñ½º³Ý ÀÌ¿ø¿µ
-------------------------------------------------------
º» ¹®¼´Â ÀÚÀ¯·Ó°Ô ¹èÆ÷/º¹»ç ÇÒ ¼ö ÀÖÀ¸³ª ¹Ýµå½Ã
ÀÌ ¹®¼ÀÇ ÀúÀÚ¿¡ ´ëÇÑ ¾ð±ÞÀ» »èÁ¦ÇÏ½Ã¸é ¾ÈµË´Ï´Ù
|