어제 부가세 계산하는데 ..
결과가 이상해서 보니
27500 원에서 부가세 2500 원을 빼려고
27500 / 1.1 이렇게 계산하면 25000 원이 나와야 하는데
자바스크립트에서는 24999.999999999996
게 나와버리네요 검색해보니 toFixed를 사용하면 된다고 하는데
일단 fixed를 하긴 했는데 매번 저렇게 해줘야 하나요 ?
원천적으로 해결하는 방법은 없을까요? 올림내지 반올림 되는 느낌이던데 ㅜㅜ
왜 저런 오류가 생기는건가요 .?
ÀÚ¹Ù½ºÅ©¸³Æ® ¹è¿ï ¶§ ¼ýÀÚ°è»ê¿¡ ¹®Á¦°¡ ÀÖ´Ù°í ¹è¿ì±ä Ç߳׿ä.
ÄݹéÇïºÎÅÍ ¿¬»ê ±îÁö... ¤Ì¤Ì null °ª 󸮵µ ½Å°æ ½áÁà¾ß ÇÏ°í ..
(¸ðµç ÇÁ·Î±×·¡¹Ö ¾ð¾î°¡ ±×·¸´Ü °Ì´Ï´Ù. goµµ ¸¶Âù°¡ÁöÀÏ°Å °°½À´Ï´Ù)
´Ü¼øÇÑ ¿¹·Î 0.1+0.2 != 0.3 ÀΰÅÁÒ.
À̸¦ ÇØ°áÇϱâ À§Çؼ± ¹Ý¿Ã¸²À» Çϰųª ȤÀº °íÁ¤¼Ò¼öÁ¡ ¿¬»êÀ» ÇÏ¸é µË´Ï´Ù.
°íÁ¤ ¼Ò¼öÁ¡ ¿¬»êÀº ((27500 * 10) / (1.1 * 10)) / 10 °ú °°ÀÌ °íÁ¤ ¹è¼ö¸¦ °öÇØ ¼Ò¼öÁ¡À» ¾ø¾Ø ÈÄ Á¤¼ö¿¬»êÀ» ÇÏ´Â °ÅÁÒ.
´Ù¸¸ Á¤È®µµ¸¦ ³ôÀ̱â À§ÇØ Å« ¼ö¸¦ °öÇÏ´Â °æ¿ì range°¡ ÀÛ¾ÆÁ® ¿À¹öÇ÷ΰ¡ ³¯ ¼ö ÀÖÀ¸´Ï ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼´Â bignumber.js³ª bigintµîÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
Âü°í·Î ÀÚ¹Ù½ºÅ©¸³Æ®´Â 2^53-1~-2^53±îÁö Á¤¼öÇ¥ÇöÀÌ °¡´ÉÇÏÁö¸¸ ¿¬»ê ½Ã 32bitÅ©±âÀÌ¸é¼ ÃÖ»óÀ§ºñÆ®°¡1ÀÎ ¼ýÀÚ´Â À½¼ö󸮵Ǿî¹ö¸®´Â À̽´°¡ ÀÖ½À´Ï´Ù.
µû¶ó¼ 2¾ï´ë~4¾ï´ë ¼ýÀÚ¸¦ ¿¬»êÇÏ¸ç ¿Ã¹Ù¸£°Ô Ç¥ÇöÇÏ·Á¸é bignumberµîÀ» »ç¿ëÇÏ½Ã´Â°Ô ¾ÈÀüÇÕ´Ï´Ù.
var test int = 27500 / 11;
25000 ¿ø Á¦´ë·Î ³ª¿À³×¿ä .. ŸÀÔ°ªÀÌ int ÇüÀÌ¶ó¼ ±×·±°Ç°¡¿ä?
ÀÚ¹Ù½ºÅ©¸³Æ®´Â int·Î °¡Á®¿Íµµ ..
parseInt(27500/1.1)
24999
ÀÌ·± °á°ú°¡ ³ª¿À±¸¿ä ..
ÀÚ¹Ù½ºÅ©¸³Æ®´Â ¼ýÀÚÇüÀº ÀÚµ¿À¸·Î ÆÇ´ÜÇÏ¿© Á¤¼ö/ºÎµ¿¼Ò¼öÁ¡ Çü½ÄÀ¸·Î ¹Ù²ò´Ï´Ù.