From ad7d80435a8e319ed5fe42fd6ae53dfa433dd222 Mon Sep 17 00:00:00 2001 From: Benoit DUMONT Date: Fri, 7 Feb 2025 21:40:28 +0100 Subject: [PATCH] fixed #2576 numeric comparaison support negative. --- .../src/main/java/org/cerberus/core/util/StringUtil.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/source/src/main/java/org/cerberus/core/util/StringUtil.java b/source/src/main/java/org/cerberus/core/util/StringUtil.java index 08f1120f6..a6fa851cd 100644 --- a/source/src/main/java/org/cerberus/core/util/StringUtil.java +++ b/source/src/main/java/org/cerberus/core/util/StringUtil.java @@ -128,14 +128,19 @@ public static boolean isBoolean(String str) { } /** - * This method just reformat a string in order to increase the change it can + * This method just reformat a string in order to increase the chance it can * get converted to float. For ex, it replace , with . */ public static String prepareToNumeric(String str) { - String result = str.replaceAll("[^0-9.,]", ""); + String result = str.replaceAll("[^0-9.,-]", ""); if (result.contains(",")) { result = result.replace(",", "."); } + if (result.startsWith("-")) { + result = "-" + result.replace("-", ""); + } else { + result = result.replace("-", ""); + } int i = 0; while (nbChars(result, ".") > 1 && i++ < 100) { result = result.replaceFirst("\\.", "");