diff --git a/io_curve_svg/svg_util.py b/io_curve_svg/svg_util.py
index a3e1613cd17403bdd4d23cfd4e8d0688bcc56d65..056a19a6dd520512c7aac92b5c36051de67a25b2 100644
--- a/io_curve_svg/svg_util.py
+++ b/io_curve_svg/svg_util.py
@@ -31,7 +31,7 @@ def check_points_equal(point_a, point_b):
     return (abs(point_a[0] - point_b[0]) < 1e-6 and
             abs(point_a[1] - point_b[1]) < 1e-6)
 
-match_number = r"-?\d+([eE][-+]?\d+)?"
+match_number = r"-?\d+(\.\d+)?([eE][-+]?\d+)?"
 match_first_comma = r"^\s*(?=,)"
 match_comma_pair = r",\s*(?=,)"
 match_last_comma = r",\s*$"
diff --git a/io_curve_svg/svg_util_test.py b/io_curve_svg/svg_util_test.py
index b3ecda83e375b139b4dca87bf120d1e8d8b4d93d..031c0c17d95b6eeb91bfd80a0b6457bc1cdd259c 100755
--- a/io_curve_svg/svg_util_test.py
+++ b/io_curve_svg/svg_util_test.py
@@ -66,6 +66,12 @@ class ParseArrayOfFloatsTest(unittest.TestCase):
     def test_all_commas(self):
         self.assertEqual(parse_array_of_floats(",,,"), [0, 0, 0, 0])
 
+    def test_value_with_decimal_separator(self):
+        self.assertEqual(parse_array_of_floats("3.5"), [3.5])
+
+    def test_comma_separated_values_with_decimal_separator(self):
+        self.assertEqual(parse_array_of_floats("2.75,8.5"), [2.75, 8.5])
+
 
 if __name__ == '__main__':
     unittest.main(verbosity=2)