From a351feaca7f948fd1700b22585e73c09ce0ed073 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Thu, 13 Apr 2023 22:58:54 +0200 Subject: [PATCH] Fixed #740 - fixed floating point handling --- .../budgetmaster/transactions/csvimport/AmountParser.java | 2 +- .../unit/transaction/csvimport/AmountParserTest.java | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/csvimport/AmountParser.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/csvimport/AmountParser.java index 97d066b00..20ced355a 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/csvimport/AmountParser.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/csvimport/AmountParser.java @@ -49,7 +49,7 @@ public class AmountParser throw new ParseException("String not fully parsed", parsePosition.getIndex()); } - return Optional.of((int) (parseDouble * 100)); + return Optional.of((int) Math.round(parseDouble * 100)); } catch(ParseException e) { diff --git a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/transaction/csvimport/AmountParserTest.java b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/transaction/csvimport/AmountParserTest.java index 3f64af30a..074e53291 100644 --- a/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/transaction/csvimport/AmountParserTest.java +++ b/BudgetMasterServer/src/test/java/de/deadlocker8/budgetmaster/unit/transaction/csvimport/AmountParserTest.java @@ -268,4 +268,12 @@ class AmountParserTest .isPresent() .get().isEqualTo(-123456703); } + + @Test + void test_floatingPoint() + { + assertThat(AmountParser.parse("-9,7 €", ',', '.')) + .isPresent() + .get().isEqualTo(-970); + } } -- GitLab