{"id":662,"date":"2020-04-01T04:49:26","date_gmt":"2020-04-01T04:49:26","guid":{"rendered":"http:\/\/www.yebeeniii.site\/?p=662"},"modified":"2020-04-01T04:49:26","modified_gmt":"2020-04-01T04:49:26","slug":"bigdecimal","status":"publish","type":"post","link":"http:\/\/happily70.dothome.co.kr\/?p=662","title":{"rendered":"BigDecimal"},"content":{"rendered":"\n<p>\uc870\uc0ac\ud558\uac8c \ub41c \uacc4\uae30?<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>\ud560\uc778 \uad00\ub828 API \uc791\uc5c5\uc744 \uc9c4\ud589\uc911\uc5d0 \ud37c\uc13c\ud2b8 \uacc4\uc0b0\uc744 \uc704\ud574 \ub098\ub204\uae30 \uc5f0\uc0b0\uc744 \ud558\uc600\ub294\ub370\uc774\uc0c1\ud55c \uc624\ub958\ub97c \ubc1c\uacac\ud588\ub2e4. \ubd84\uba85 \ub531 \ub5a8\uc5b4\uc838\uc57c \ud558\ub294 \uac12\uc778\ub370! x.999999999\ub85c \ub098\uc624\uace0 \uc788\ub294!! \u315c\u315c \uc624\ud508 \ud558\ub8e8\uc804\uc5d0 \ucc3e\uc544\ub0b8 \ubc84\uadf8\ub77c\uc11c.. \uad49\uc7a5\ud788 \ub9c8\uc74c \uc878\uc600\uc5c8\ub358 \uae30\uc5b5.. <\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bigdecimal?\">BigDecimal?<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>BigDecimal<\/strong>\uc740&nbsp;<strong>Java<\/strong>&nbsp;\uc5b8\uc5b4\uc5d0\uc11c \uc22b\uc790\ub97c \uc815\ubc00\ud558\uac8c \uc800\uc7a5\ud558\uace0 \ud45c\ud604\ud560 \uc218 \uc788\ub294 \uc720\uc77c\ud55c \ubc29\ubc95\uc774\ub2e4.<\/li><li>\uc18c\uc218\uc810\uc744 \uc800\uc7a5\ud560 \uc218 \uc788\ub294 \uac00\uc7a5 \ud06c\uae30\uac00 \ud070 \ud0c0\uc785\uc778&nbsp;<strong>double<\/strong>\uc740 \uc18c\uc218\uc810\uc758 \uc815\ubc00\ub3c4\uc5d0 \uc788\uc5b4 \ud55c\uacc4\uac00 \uc788\uc5b4 \uac12\uc774 \uc720\uc2e4\ub420 \uc218 \uc788\ub2e4.<\/li><li><strong>Java<\/strong>&nbsp;\uc5b8\uc5b4\uc5d0\uc11c \ub3c8\uacfc \uc18c\uc218\uc810\uc744 \ub2e4\ub8ec\ub2e4\uba74&nbsp;<strong>BigDecimal<\/strong>\uc740 \uc120\ud0dd\uc774 \uc544\ub2c8\ub77c \ud544\uc218\uc774\ub2e4.<\/li><li><strong>BigDecimal<\/strong>\uc758 \uc720\uc77c\ud55c \ub2e8\uc810\uc740 \ub290\ub9b0 \uc18d\ub3c4\uc640 \uae30\ubcf8 \ud0c0\uc785\ubcf4\ub2e4 \uc870\uae08 \ubd88\ud3b8\ud55c \uc0ac\uc6a9\ubc95 \ubfd0\uc774\ub2e4.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"double,-\ubb34\uc5c7\uc774-\ubb38\uc81c\uc778\uac00?\">double, \ubb34\uc5c7\uc774 \ubb38\uc81c\uc778\uac00?<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>\uc18c\uc218\uc810 \uc774\ud558\uc758 \uc218\ub97c \ub2e4\ub8f0 \ub54c\u00a0<strong>double<\/strong>\u00a0\ud0c0\uc785\uc740 \uc0ac\uce59\uc5f0\uc0b0\uc2dc \uc544\ub798\uc640 \uac19\uc774 \uc6b0\ub9ac\uac00 \uae30\ub300\ud55c \uac12\uacfc \ub2e4\ub978 \uac12\uc744 \ucd9c\ub825\ud55c\ub2e4. \uc774\uc720\ub294\u00a0<strong>double<\/strong>\u00a0\ud0c0\uc785\uc774 \ub0b4\ubd80\uc801\uc73c\ub85c \uc218\ub97c \uc800\uc7a5\ud560 \ub54c \uc774\uc9c4\uc218\uc758 \uadfc\uc0ac\uce58\ub97c \uc800\uc7a5\ud558\uae30 \ub54c\ubb38\uc774\ub2e4. \uc800\uc7a5\ub41c \uc218\ub97c \ub2e4\uc2dc \uc2ed\uc9c4\uc218\ub85c \ud45c\ud604\ud558\uba74\uc11c \uc544\ub798\uc640 \uac19\uc740 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud55c\ub2e4. \uc544\ub798 \uc124\uba85\ud560\u00a0<strong>BigDecimal<\/strong>\u00a0\ud0c0\uc785\uc740 \ub0b4\ubd80\uc801\uc73c\ub85c \uc218\ub97c \uc2ed\uc9c4\uc218\ub85c \uc800\uc7a5\ud558\uc5ec \uc544\uc8fc \uc791\uc740 \uc218\uacfc \ud070 \uc218\uc758 \uc5f0\uc0b0\uc5d0 \ub300\ud574 \uac70\uc758 \ubb34\ud55c\ud55c \uc815\ubc00\ub3c4\ub97c \ubcf4\uc7a5\ud55c\ub2e4.<\/li><li> <a href=\"https:\/\/stackoverflow.com\/questions\/322749\/retain-precision-with-double-in-java\/322875#322875\">https:\/\/stackoverflow.com\/questions\/322749\/retain-precision-with-double-in-java\/322875#322875<\/a> <\/li><li> <a href=\"https:\/\/blogs.oracle.com\/corejavatechtips\/the-need-for-bigdecimal\">https:\/\/blogs.oracle.com\/corejavatechtips\/the-need-for-bigdecimal<\/a> <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>double a = 10.0000;\ndouble b = 3.0000;\n\n\/\/ \uae30\ub300\uac12: 13\n\/\/ \uc2e4\uc81c\uac12: 13.000001999999999\na + b;\n\n\/\/ \uae30\ub300\uac12: 7\n\/\/ \uc2e4\uc81c\uac12: 6.999999999999999\na - b;\n\n\/\/ \uae30\ub300\uac12: 30\n\/\/ \uc2e4\uc81c\uac12: 30.000013000000997\na * b;\n\n\/\/ \uae30\ub300\uac12: 3.33333...\n\/\/ \uc2e4\uc81c\uac12: 3.333332555555814\na \/ b;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bigdecimal-\ucd08\uae30\ud654\">BigDecimal \ucd08\uae30\ud654<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>double<\/strong>\u00a0\ud0c0\uc785\uc73c\ub85c \ubd80\ud130\u00a0<strong>BigDecimal<\/strong>\u00a0\ud0c0\uc785\uc744 \ucd08\uae30\ud654\ud558\ub294 \ubc29\ubc95\uc73c\ub85c \uac00\uc7a5 \uc548\uc804\ud55c \uac83\uc740 \ubb38\uc790\uc5f4\uc758 \ud615\ud0dc\ub85c \uc0dd\uc131\uc790\uc5d0 \uc804\ub2ec\ud558\uc5ec \ucd08\uae30\ud654\ud558\ub294 \uac83\uc774\ub2e4.\u00a0<strong>double<\/strong>\u00a0\ud0c0\uc785\uc758 \uac12\uc744 \uadf8\ub300\ub85c \uc804\ub2ec\ud560 \uacbd\uc6b0 \uc55e\uc11c \uc0ac\uce59\uc5f0\uc0b0 \uacb0\uacfc\uc5d0\uc11c \ubcf8 \uac83\uacfc \uac19\uc774 \uc774\uc9c4\uc218\uc758 \uadfc\uc0ac\uce58\ub97c \uac00\uc9c0\uac8c \ub418\uc5b4 \uc608\uc0c1\uacfc \ub2e4\ub978 \uac12\uc744 \uc5bb\uc744 \uc218 \uc788\ub2e4.<\/li><li> <a href=\"https:\/\/stackoverflow.com\/questions\/7186204\/bigdecimal-to-use-new-or-valueof\/7186298#7186298\">https:\/\/stackoverflow.com\/questions\/7186204\/bigdecimal-to-use-new-or-valueof\/7186298#7186298<\/a> <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ double \ud0c0\uc785\uc744 \uadf8\ub300\ub85c \ucd08\uae30\ud654\ud558\uba74 \uae30\ub300\uac12\uacfc \ub2e4\ub978 \uac12\uc744 \uac00\uc9c4\ub2e4.\n\/\/ 0.01000000000000000020816681711721685132943093776702880859375\nnew BigDecimal(0.01);\n\n\/\/ \ubb38\uc790\uc5f4\ub85c \ucd08\uae30\ud654\ud558\uba74 \uc815\uc0c1 \uc778\uc2dd\n\/\/ 0.01\nnew BigDecimal(\"0.01\");\n\n\/\/ \uc704\uc640 \ub3d9\uc77c\ud55c \uacb0\uacfc, double#toString\uc744 \uc774\uc6a9\ud558\uc5ec \ubb38\uc790\uc5f4\ub85c \ucd08\uae30\ud654\n\/\/ 0.01\nBigDecimal.valueOf(0.01);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bigdecimal-\ube44\uad50-\uc5f0\uc0b0\">BigDecimal \ube44\uad50 \uc5f0\uc0b0<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>BigDecimal<\/strong>\uc740 \uae30\ubcf8 \ud0c0\uc785\uc774 \uc544\ub2cc \uc624\ube0c\uc81d\ud2b8\uc774\uae30 \ub54c\ubb38\uc5d0 \ud2b9\ud788, \ub3d9\ub4f1 \ube44\uad50 \uc5f0\uc0b0\uc744 \uc720\uc758\ud574\uc57c \ud55c\ub2e4.&nbsp;<strong>double<\/strong>&nbsp;\ud0c0\uc785\uc744 \uc0ac\uc6a9\ud558\ub358 \uc2b5\uad00\ub300\ub85c \ubb34\uc758\uc2dd\uc801\uc73c\ub85c&nbsp;<strong>==<\/strong>&nbsp;\uae30\ud638\ub97c \uc0ac\uc6a9\ud558\uba74 \uc608\uae30\uce58 \uc54a\uc740 \uc5f0\uc0b0 \uacb0\uacfc\ub97c \ucd08\ub798\ud560 \uc218 \uc788\ub2e4.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>BigDecimal a = new BigDecimal(\"2.01\");\nBigDecimal b = new BigDecimal(\"2.010\");\n\n\/\/ \uac1d\uccb4\uc758 \ub808\ud37c\ub7f0\uc2a4 \uc8fc\uc18c\uc5d0 \ub300\ud55c \ube44\uad50 \uc5f0\uc0b0\uc790\ub85c \ubb34\uc758\uc2dd\uc801\uc73c\ub85c \uac12\uc758 \ube44\uad50\ub97c \uc704\ud574 \uc0ac\uc6a9\ud558\uba74 \uc624\ub3d9\uc791\n\/\/ false\na == b;\n\n\/\/ \uac12\uc758 \ube44\uad50\ub97c \uc704\ud574 \uc0ac\uc6a9, \uc18c\uc218\uc810 \ub9e8 \ub05d\uc758 0\uae4c\uc9c0 \uc644\uc804\ud788 \uac12\uc774 \ub3d9\uc77c\ud574\uc57c true \ubc18\ud658\n\/\/ false\na.equals(b);\n\n\/\/ \uac12\uc758 \ube44\uad50\ub97c \uc704\ud574 \uc0ac\uc6a9, \uc18c\uc218\uc810 \ub9e8 \ub05d\uc758 0\uc744 \ubb34\uc2dc\ud558\uace0 \uac12\uc774 \ub3d9\uc77c\ud558\uba74 0, \uc801\uc73c\uba74 -1, \ub9ce\uc73c\uba74 1\uc744 \ubc18\ud658\n\/\/ 0\na.compareTo(b);\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bigdecimal-\uc0ac\uce59-\uc5f0\uc0b0\">BigDecimal \uc0ac\uce59 \uc5f0\uc0b0<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Java<\/strong>\uc5d0\uc11c\u00a0<strong>BigDecimal<\/strong>\u00a0\ud0c0\uc785\uc758 \uc0ac\uce59 \uc5f0\uc0b0 \ubc29\ubc95\uc740 \uc544\ub798\uc640 \uac19\ub2e4. \ubcf4\ub2e4\uc2dc\ud53c\u00a0<strong>double<\/strong>\u00a0\ud0c0\uc785\ubcf4\ub2e4 \uc7a5\ud669\ud558\uace0 \uadc0\ucc2e\uc740 \ud3b8\uc774\ub2e4.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>BigDecimal a = new BigDecimal(\"10\");\nBigDecimal b = new BigDecimal(\"3\");\n\n\/\/ \ub354\ud558\uae30\n\/\/ 13\na.add(b);\n\n\/\/ \ube7c\uae30\n\/\/ 7\na.subtract(b);\n\n\/\/ \uacf1\ud558\uae30\n\/\/ 30\na.multiply(b);\n\n\/\/ \ub098\ub204\uae30\n\/\/ 3.333333...\n\/\/ java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.\na.divide(b);\n\n\/\/ \ub098\ub204\uae30\n\/\/ 3.333\na.divide(b, 3, RoundingMode.HALF_EVEN);\n\n\/\/ \ub098\ub204\uae30 \ud6c4 \ub098\uba38\uc9c0\n\/\/ \uc804\uccb4 \uc790\ub9ac\uc218\ub97c 34\uac1c\ub85c \uc81c\ud55c\n\/\/ 1\na.remainder(b, MathContext.DECIMAL128);\n\n\/\/ \uc808\ub300\uac12\n\/\/ 3\nnew BigDecimal(\"-3\").abs();\n\n\/\/ \ub450 \uc218 \uc911 \ucd5c\uc18c\uac12\n\/\/ 3\na.min(b);\n\n\/\/ \ub450 \uc218 \uc911 \ucd5c\ub300\uac12\n\/\/ 10\na.max(b);\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bigdecimal-\uc18c\uc218\uc810-\ucc98\ub9ac\">BigDecimal \uc18c\uc218\uc810 \ucc98\ub9ac<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><code>RoundingMode.HALF_EVEN<\/code>\uc740&nbsp;<strong>Java<\/strong>\uc758 \uae30\ubcf8 \ubc18\uc62c\ub9bc \uc815\ucc45\uc73c\ub85c \uae08\uc735\uad8c\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294&nbsp;<strong>Bankers Rounding<\/strong>\uc640 \ub3d9\uc77c\ud55c \uc54c\uace0\ub9ac\uc998\uc774\ub2e4. \uae08\uc735\uad8c\uc5d0\uc11c\ub294 \uc2dc\uc2a4\ud15c \uac1c\ubc1c\uc2dc \ud63c\ub780\uc744 \ub9c9\uae30 \uc704\ud574 \uc694\uad6c\uc0ac\ud56d\uc5d0 \ubc18\uc62c\ub9bc \uc815\ucc45\uc744 \uba85\ud655\ud788 \uba85\uc2dc\ud558\uc5ec \uac1c\ubc1c\ud55c\ub2e4.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ \uc18c\uc218\uc810 \uc774\ud558\ub97c \uc808\uc0ac\ud55c\ub2e4.\n\/\/ 1\nnew BigDecimal(\"1.1234567890\").setScale(0, RoundingMode.FLOOR);\n\n\/\/ \uc18c\uc218\uc810 \uc774\ud558\ub97c \uc808\uc0ac\ud558\uace0 1\uc744 \uc99d\uac00\uc2dc\ud0a8\ub2e4.\n\/\/ 2\nnew BigDecimal(\"1.1234567890\").setScale(0, RoundingMode.CEILING);\n\/\/ \uc74c\uc218\uc5d0\uc11c\ub294 \uc18c\uc218\uc810 \uc774\ud558\ub9cc \uc808\uc0ac\ud55c\ub2e4.\n\/\/ -1\nnew BigDecimal(\"-1.1234567890\").setScale(0, RoundingMode.CEILING);\n\n\/\/ \uc18c\uc218\uc810 \uc790\ub9ac\uc218\uc5d0\uc11c \uc624\ub978\ucabd\uc758 0 \ubd80\ubd84\uc744 \uc81c\uac70\ud55c \uac12\uc744 \ubc18\ud658\ud55c\ub2e4.\n\/\/ 0.9999\nnew BigDecimal(\"0.99990\").stripTrailingZeros();\n\n\/\/ \uc18c\uc218\uc810 \uc790\ub9ac\uc218\ub97c \uc7ac\uc815\uc758\ud55c\ub2e4.\n\/\/ \uc6d0\ub798 \uc18c\uc218\uc810 \uc790\ub9ac\uc218\ubcf4\ub2e4 \uc791\uc740 \uc790\ub9ac\uc218\uc758 \uc18c\uc218\uc810\uc744 \uc124\uc815\ud558\uba74 \uc608\uc678\uac00 \ubc1c\uc0dd\ud55c\ub2e4.\n\/\/ java.lang.ArithmeticException: Rounding necessary\nnew BigDecimal(\"0.1234\").setScale(3);\n\n\/\/ \ubc18\uc62c\ub9bc \uc815\ucc45\uc744 \uba85\uc2dc\ud558\uba74 \uc608\uc678\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\ub294\ub2e4.\n\/\/ 0.123\nnew BigDecimal(\"0.1234\").setScale(3, RoundingMode.HALF_EVEN);\n\n\/\/ \uc18c\uc218\uc810\uc744 \ub0a8\uae30\uc9c0 \uc54a\uace0 \ubc18\uc62c\ub9bc\ud55c\ub2e4.\n\/\/ 0\nnew BigDecimal(\"0.1234\").setScale(0, RoundingMode.HALF_EVEN);\n\/\/ 1\nnew BigDecimal(\"0.9876\").setScale(0, RoundingMode.HALF_EVEN);\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bigdecimal-\ub098\ub204\uae30-\ucc98\ub9ac\">BigDecimal \ub098\ub204\uae30 \ucc98\ub9ac<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>BigDecimal b10 = new BigDecimal(\"10\");\nBigDecimal b3 = new BigDecimal(\"3\");\n\n\/\/ \ub098\ub204\uae30 \uacb0\uacfc\uac00 \ubb34\ud55c\uc73c\ub85c \ub5a8\uc5b4\uc9c0\uba74 \uc608\uc678 \ubc1c\uc0dd\n\/\/ java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.\nb10.divide(b3);\n\n\/\/ \ubc18\uc62c\ub9bc \uc815\ucc45\uc744 \uba85\uc2dc\ud558\uba74 \uc608\uc678\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\uc74c\n\/\/ 3\nb10.divide(b3, RoundingMode.HALF_EVEN);\n\n\/\/ \ubc18\uc62c\ub9bc \uc790\ub9ac\uac12\uc744 \uba85\uc2dc\n\/\/ 3.333333\nb10.divide(b3, 6, RoundingMode.HALF_EVEN);\n\n\/\/ 3.333333333\nb10.divide(b3, 9, RoundingMode.HALF_EVEN);\n\n\/\/ \uc804\uccb4 \uc790\ub9ac\uc218\ub97c 7\uac1c\ub85c \uc81c\ud55c\ud558\uace0 HALF_EVEN \ubc18\uc62c\ub9bc\uc744 \uc801\uc6a9\ud55c\ub2e4.\n\/\/ 3.333333\nb10.divide(b3, MathContext.DECIMAL32);\n\n\/\/ \uc804\uccb4 \uc790\ub9ac\uc218\ub97c 16\uac1c\ub85c \uc81c\ud55c\ud558\uace0 HALF_EVEN \ubc18\uc62c\ub9bc\uc744 \uc801\uc6a9\ud55c\ub2e4.\n\/\/ 3.333333333333333\nb10.divide(b3, MathContext.DECIMAL64);\n\n\/\/ \uc804\uccb4 \uc790\ub9ac\uc218\ub97c 34\uac1c\ub85c \uc81c\ud55c\ud558\uace0 HALF_EVEN \ubc18\uc62c\ub9bc\uc744 \uc801\uc6a9\ud55c\ub2e4.\n\/\/ 3.333333333333333333333333333333333\nb10.divide(b3, MathContext.DECIMAL128);\n\n\/\/ \uc804\uccb4 \uc790\ub9ac\uc218\ub97c \uc81c\ud55c\ud558\uc9c0 \uc54a\ub294\ub2e4.\n\/\/ java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. \uc608\uc678\uac00 \ubc1c\uc0dd\ud55c\ub2e4.\nb10.divide(b3, MathContext.UNLIMITED);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bigdecimal\uacfc-java-stream\">BigDecimal\uacfc Java Stream<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ POJO \ubaa9\ub85d\uc5d0\uc11c BigDecimal \ud0c0\uc785\uc744 \uac00\uc9c4 \ud2b9\uc815 \ud544\ub4dc\uc758 \ud569\uc744 \ubc18\ud658\nBigDecimal sumOfFoo = fooList.stream()\n    .map(FooEntity::getFooBigDecimal)\n    .filter(foo -> Objects.nonNull(foo))\n    .reduce(BigDecimal.ZERO, BigDecimal::add);\n\n\/\/ \ud2b9\uc815 BigDecimal \ud544\ub4dc\ub97c \uae30\uc900\uc73c\ub85c \uc624\ub984\ucc28\uc21c \uc815\ub82c\ub41c \ub9ac\uc2a4\ud2b8\ub97c \ubc18\ud658\nfoolist.stream()\n    .sorted(Comparator.comparing(it -> it.getAmount()))\n    .collect(Collectors.toList());\n\n\/\/ \uc704\uc640 \ub3d9\uc77c\ud55c \uae30\ub2a5, \uc815\ub82c\ub41c \uc0c8\ub85c\uc6b4 \ub9ac\uc2a4\ud2b8\ub97c \ubc18\ud658\ud558\uc9c0 \uc54a\uace0 \uc6d0\ubcf8 \ub9ac\uc2a4\ud2b8\ub97c \ubc14\ub85c \uc815\ub82c\nfoolist.sort(Comparator.comparing(it -> it.getAmount()));<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bigdecimal\uacfc-\uc720\ub2db-\ud14c\uc2a4\ud2b8\">BigDecimal \uc720\ub2db \ud14c\uc2a4\ud2b8<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>BigDecimal<\/strong>\uc740\u00a0<strong>JUnit<\/strong>\uc5d0\uc11c\u00a0<strong>Assertion<\/strong>\u00a0\uae30\ub2a5\uc744 \uc81c\uacf5\ud558\uc9c0 \uc54a\uc544 \uc720\ub2db \ud14c\uc2a4\ud2b8\uac00 \ubd88\ud3b8\ud558\ub2e4.\u00a0<code>AssertJ<\/code>\u00a0\ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc774\uc6a9\ud558\uba74 \uc544\ub798\uc640 \uac19\uc774 \ub124\uc774\ud2f0\ube0c\ud558\uac8c\u00a0<strong>BigDecimal<\/strong>\uc5d0 \ub300\ud55c \uc720\ub2db \ud14c\uc2a4\ud2b8\ub97c \uc218\ud589\ud560 \uc218 \uc788\ub2e4.<\/li><li> <a href=\"https:\/\/joel-costigliola.github.io\/assertj\/\">https:\/\/joel-costigliola.github.io\/assertj\/<\/a> <\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>BigDecimal a = BigDecimal.valueOf(0.1);\nBigDecimal b = BigDecimal.valueOf(0.10);\nBigDecimal c = BigDecimal.valueOf(0.101);\nBigDecimal d = BigDecimal.valueOf(0.001);\n\n\/\/ equals()\uc640 \ub3d9\uc77c\ud558\uae30 \ub54c\ubb38\uc5d0 \uc18c\uc218\uc810 \ub9c8\uc9c0\ub9c9 0\uae4c\uc9c0 \ub3d9\uc77c\ud574\uc57c true\n\/\/ false\nassertThat(a).isEqualTo(b));\n\n\/\/ compareTo()\uc640 \ub3d9\uc77c\ud558\uae30 \ub54c\ubb38\uc5d0 \uc18c\uc218\uc810 \ub9c8\uc9c0\ub9c9 0\uc774 \ub2ec\ub77c\ub3c4 true\n\/\/ true\nassertThat(a).isEqualByComparingTo(b);\n\n\/\/ \ub450 \uc218\uac00 \uc8fc\uc5b4\uc9c4 \uc624\ucc28 \ubc94\uc704\ub97c \ub9cc\uc871\ud558\uba74 true\n\/\/ true\nassertThat(a).isCloseTo(c, within(d));\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"bigdecimal-\uad00\ub828-\ub77c\uc774\ube0c\ub7ec\ub9ac\">BigDecimal \uad00\ub828 \ub77c\uc774\ube0c\ub7ec\ub9ac<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><code>big-math<\/code>\u00a0\ub77c\uc774\ube0c\ub7ec\ub9ac\ub294\u00a0<strong>java.lang.Math<\/strong>\u00a0\ud074\ub798\uc2a4\uc758\u00a0<strong>BigDecimal<\/strong>\u00a0\ubc84\uc804\uc774\ub77c\uace0 \ud560 \uc218 \uc788\ub2e4.\u00a0<strong>BigDecimal<\/strong>\u00a0\uae30\ubc18 \uc5f0\uc0b0\uacfc \uad00\ub828\ub41c \uc5ec\ub7ec \uc720\uc6a9\ud55c \uae30\ub2a5\uc744 \uc81c\uacf5\ud55c\ub2e4.\u00a0<\/li><li>  <a href=\"https:\/\/github.com\/eobermuhlner\/big-math\">https:\/\/github.com\/eobermuhlner\/big-math<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\uc870\uc0ac\ud558\uac8c \ub41c \uacc4\uae30? \ud560\uc778 \uad00\ub828 API \uc791\uc5c5\uc744 \uc9c4\ud589\uc911\uc5d0 \ud37c\uc13c\ud2b8 \uacc4\uc0b0\uc744 \uc704\ud574 \ub098\ub204\uae30 \uc5f0\uc0b0\uc744 \ud558\uc600\ub294\ub370\uc774\uc0c1\ud55c \uc624\ub958\ub97c \ubc1c\uacac\ud588\ub2e4. \ubd84\uba85 \ub531 \ub5a8\uc5b4\uc838\uc57c \ud558\ub294 \uac12\uc778\ub370! x.999999999\ub85c \ub098\uc624\uace0 \uc788\ub294!! \u315c\u315c \uc624\ud508 \ud558\ub8e8\uc804\uc5d0 \ucc3e\uc544\ub0b8 \ubc84\uadf8\ub77c\uc11c.. \uad49\uc7a5\ud788 \ub9c8\uc74c \uc878\uc600\uc5c8\ub358 \uae30\uc5b5.. BigDecimal? BigDecimal\uc740&nbsp;Java&nbsp;\uc5b8\uc5b4\uc5d0\uc11c \uc22b\uc790\ub97c \uc815\ubc00\ud558\uac8c \uc800\uc7a5\ud558\uace0 \ud45c\ud604\ud560 \uc218 \uc788\ub294 \uc720\uc77c\ud55c \ubc29\ubc95\uc774\ub2e4. \uc18c\uc218\uc810\uc744 \uc800\uc7a5\ud560 \uc218 \uc788\ub294 \uac00\uc7a5 \ud06c\uae30\uac00 \ud070 \ud0c0\uc785\uc778&nbsp;double\uc740 \uc18c\uc218\uc810\uc758 \uc815\ubc00\ub3c4\uc5d0 \uc788\uc5b4 \ud55c\uacc4\uac00<\/p>\n<footer class=\"entry-footer index-entry\">\n<div class=\"post-social pull-left\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=http%3A%2F%2Fhappily70.dothome.co.kr%2F%3Fp%3D662\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-facebook\" aria-hidden=\"true\"><\/i><\/a><a href=\"https:\/\/twitter.com\/home?status=http%3A%2F%2Fhappily70.dothome.co.kr%2F%3Fp%3D662\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-twitter\" aria-hidden=\"true\"><\/i><\/a><a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=http%3A%2F%2Fhappily70.dothome.co.kr%2F%3Fp%3D662&#038;title=BigDecimal\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-linkedin\" aria-hidden=\"true\"><\/i><\/a><\/div>\n<p class=\"link-more\"><a href=\"http:\/\/happily70.dothome.co.kr\/?p=662\" class=\"more-link\">Continue reading <span class=\"meta-nav\">\u2192<\/span><\/a><\/p>\n<\/footer>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,33,28,9],"tags":[],"class_list":["post-662","post","type-post","status-publish","format-standard","hentry","category-back-end","category-developement","category-etc","category-java"],"_links":{"self":[{"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/662"}],"collection":[{"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=662"}],"version-history":[{"count":2,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/662\/revisions"}],"predecessor-version":[{"id":685,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=\/wp\/v2\/posts\/662\/revisions\/685"}],"wp:attachment":[{"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=662"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/happily70.dothome.co.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}