From 1a765bc546404fc9d233eb1102ba4378cc9c71c6 Mon Sep 17 00:00:00 2001 From: hjjeong Date: Mon, 30 Mar 2026 15:54:41 +0900 Subject: [PATCH] =?UTF-8?q?=EC=95=84=EB=A7=88=EB=9E=80=EC=8A=A4=20?= =?UTF-8?q?=EA=B2=B0=EC=9E=AC=EB=AC=B8=EC=84=9C=20=EA=B8=88=EC=95=A1=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=20=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?(formatNumber=20=EC=86=8C=EC=88=98=EC=A0=90=20=EC=B2=98?= =?UTF-8?q?=EB=A6=AC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DB에 VARCHAR로 저장된 금액값(950000.00 등)에서 소수점을 제거하면서 숫자가 10배~100배로 뻥튀기되는 버그 수정 Co-Authored-By: Claude Opus 4.6 (1M context) --- src/com/pms/service/ApprovalService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/pms/service/ApprovalService.java b/src/com/pms/service/ApprovalService.java index 26d978a..dd6cbb9 100644 --- a/src/com/pms/service/ApprovalService.java +++ b/src/com/pms/service/ApprovalService.java @@ -3598,7 +3598,13 @@ public class ApprovalService { private String formatNumber(Object value){ if(value == null) return "0"; try { - long num = Long.parseLong(value.toString().replaceAll("[^0-9\\-]", "")); + String strVal = value.toString().replaceAll("[^0-9.\\-]", ""); + if(strVal.isEmpty()) return "0"; + if(strVal.contains(".")) { + long num = Math.round(Double.parseDouble(strVal)); + return String.format("%,d", num); + } + long num = Long.parseLong(strVal); return String.format("%,d", num); } catch(Exception e){ return value.toString();