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 97d066b00adcfecae514a1a61ec5dcacc63642f8..20ced355a6919a9d2e4c3de13aecb6e366342d08 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 3f64af30a1b90f7e5aa3132b6bd5533a4be1a224..074e5329134fd63b3378ab134d689dc5512938d0 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); + } }