Index: trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterRule.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterRule.java	(revision 15841)
+++ trunk/src/org/openstreetmap/josm/gui/autofilter/AutoFilterRule.java	(revision 15842)
@@ -2,4 +2,5 @@
 package org.openstreetmap.josm.gui.autofilter;
 
+import java.text.DecimalFormat;
 import java.util.Arrays;
 import java.util.Objects;
@@ -122,6 +123,6 @@
                 Matcher m = p.matcher(v);
                 if (m.matches()) {
-                    int a = Integer.parseInt(m.group(1));
-                    int b = Integer.parseInt(m.group(2));
+                    int a = valueExtractor.applyAsInt(m.group(1));
+                    int b = valueExtractor.applyAsInt(m.group(2));
                     return IntStream.rangeClosed(Math.min(a, b), Math.max(a, b));
                 } else {
@@ -144,5 +145,8 @@
     public static AutoFilterRule[] defaultRules() {
         return new AutoFilterRule[]{
-            new AutoFilterRule("level", 17),
+            new AutoFilterRule("level", 17)
+                // #17109, support values like 0.5 or 1.5 - level values are multiplied by 2 when parsing, values are divided by 2 for formatting
+                .setValueExtractor(s -> (int) (Double.parseDouble(s) * 2.))
+                .setValueFormatter(v -> DecimalFormat.getInstance().format(v / 2.)),
             new AutoFilterRule("layer", 16)
                     .setDefaultValueSupplier(AutoFilterRule::defaultLayer),
