BigDecimal Ŭ·¡½º´Â Á¤¹Ðµµ°¡ ³ôÀº ½Ç¼ö¸¦ Ç¥ÇöÇÑ´Ù. ¿Ö ÀÌ·± Ŭ·¡½º°¡ ÇÊ¿äÇÑ°¡´Â double ÇüÀÇ ³»ºÎ ±¸Á¶¸¦ ¿¬±¸ÇØ
º¸¸é ¾Ë ¼ö ÀÖ´Ù. ºÎµ¿ ¼Ò¼öÁ¡ ÇüÅ·Π¼ö¸¦ ÀúÀåÇÏ´Â doubleÇüÀº
½Ç¼öÀÇ ±Ù»ç°ªÀ» ÀúÀåÇÒ »Ó Á¤È®ÇÑ °ªÀ» Ç¥ÇöÇÏÁö ¸øÇÑ´Ù. ´ÙÀ½ ¿¹Á¦¸¦ º¸ÀÚ.
bigdecimal |
|
class JavaTest { public
static void main(String[] args) { double
a = 0.3; double
b = 0.6; double
c = a + b; System.out.println(c); } } |
|
½ÇÇà°á°ú |
0.8999999999999999 |
0.3°ú 0.6À» ´õÇßÀ¸¸é
°á°ú´Â ´ç¿¬È÷ 0.9°¡ µÇ¾î¾ß ÇÏÁö¸¸ ¹Ì¼¼ÇÑ ¿ÀÂ÷°¡ ¹ß»ýÇÑ´Ù. 2ÀÇ
°Åµì½ÂÀ¸·Î °¡¼ö¸¦ Ç¥ÇöÇÏ´Â ºÎµ¿ ¼Ò¼öÁ¡Àº 10Áø¼ö¿Í Àß ¸ÂÁö ¾Ê´Ù. ¿ÀÂ÷À²Àº 1/1°æÀÌ¸ç °íµµÀÇ Á¤¹Ðµµ¸¦ ¿äÇϴ õ¹®Çп¡¼µµ ¿ëÀεǴ ¼öÁØÀÌ´Ù. ȸé
ÁÂÇ¥³ª »ö»ó°ª, º¼·ý µîÀ¸·Î »ç¿ëµÈ´Ù¸é »ç¶÷ÀÌ ÀÌ ¿ÀÂ÷¸¦ ±¸ºÐÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù.
±×·¯³ª ¾î·°Å³ª ¿ÀÂ÷´Â ¹ß»ýÇßÀ¸¸ç °áÁ¤ÀûÀ¸·Î Ãâ·Â °á°ú°¡ µü ¶³¾îÁöÁö ¾Ê¾Æ º¸±â¿¡ Á÷°üÀûÀÌÁö ¸øÇÏ´Ù´Â °ÍÀÌ ¹®Á¦´Ù. ÈÆó ´ÜÀ§´Â Á¶±Ý¸¸ ´Þ¶óµµ °í°´ÀÇ Ç×ÀÇ°¡ ¹ß»ýÇÒ ¼ö ÀÖÀ¸¸ç ÅëÀå¿¡ ÂïÈ÷´Â Àܾ×ÀÌ 28743999.999999999¿ø µûÀ§¿©¼´Â °ï¶õÇÏ´Ù. ÀÌ Á¤µµ
¿ÀÂ÷µµ Çã¿ëÇÒ ¼ö ¾øÀ» ¶§ »ç¿ëÇϴ Ŭ·¡½º°¡ ¹Ù·Î BigDecimalÀÌ´Ù. °£´ÜÇÏ°Ô »ç¿ë¿¹¸¸ ±¸°æÇØ º¸ÀÚ.
bigdecimal2 |
½ÇÇà°á°ú |
import java.math.*; class JavaTest { public
static void main(String[] args) { BigDecimal
a = new BigDecimal("0.3"); BigDecimal
b = new BigDecimal("0.6"); BigDecimal
c = a.add(b); System.out.println(c); } } |
0.9 |
double ŸÀÔ ´ë½Å
BigDecimal °´Ã¼¸¦ »ç¿ëÇÏ¸é ¿ÀÂ÷¾øÀÌ Á¤È®ÇÑ °ªÀ» ±¸ÇÒ ¼ö ÀÖ´Ù. µÎ °³ÀÇ BigDecimal °´Ã¼¸¦ »ý¼ºÇÑ ÈÄ add ¸Þ¼µå·Î ´õÇØ ±× °á°ú¸¦
Ãâ·ÂÇß´Ù. BigInteger¿Í ³»ºÎÀûÀÌ ±¸¼ºÀ̳ª ¿ø¸®°¡ °ÅÀÇ ºñ½ÁÇÏ¸ç ¸ðµç ¿¬»êÀº ¸Þ¼µå·Î ¼öÇàÇÑ´Ù´Â
Á¡µµ µ¿ÀÏÇÏ´Ù.
BigDecimalÀÇ »ý¼ºÀÚ·Î Àü´ÞµÇ´Â ½Ç¼ö°ªÀº ¹Ýµå½Ã ¹®ÀÚ¿À̾î¾ß
ÇÑ´Ù. double ŸÀÔÀ¸·Î Àü´ÞÇÒ ¼öµµ ÀÖÁö¸¸ ÀÌ·¸°Ô µÇ¸é »ý¼ºÀÚ¿¡¼ ¹Þ´Â ÃʱⰪ ÀÚü¿¡ ¹ú½á ¿ÀÂ÷°¡
³»ÀçµÇ¾î ÀÖ¾î Á¤È®ÇÑ °á°ú¸¦ ¾òÀ» ¼ö ¾ø´Ù. double ŸÀÔÀº Å»ýÀûÀ¸·Î ¿ÀÂ÷°¡ ÀÖÀ» ¼ö¹Û¿¡ ¾ø¾î
¸ðµç ¼öÄ¡ Ç¥ÇöÀ» ¹®ÀÚ¿·Î ÇØ¾ß Á¤È®ÇÏ´Ù.