diff --git a/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java b/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java
index f2f8d2823e4483c59945c168f5e83d029bc6da6a..e9e2526521d044fc89746eb0e3204de97f473e0c 100644
--- a/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java
+++ b/src/main/java/org/caosdb/server/datatype/DoubleDatatype.java
@@ -33,16 +33,19 @@ public class DoubleDatatype extends AbstractDatatype {
   public SingleValue parseValue(final Object value) throws Message {
     try {
       if (value instanceof GenericValue) {
-        return new GenericValue(Double.parseDouble(((GenericValue) value).toDatabaseString()));
+        return parse(((GenericValue) value).toDatabaseString());
       } else {
-        String valueStr = value.toString();
-        if (valueStr.toLowerCase().equals("nan")) {
-          valueStr = "NaN";
-        }
-        return new GenericValue(Double.parseDouble(valueStr));
+        return parse(value.toString());
       }
     } catch (final NumberFormatException e) {
       throw ServerMessages.CANNOT_PARSE_DOUBLE_VALUE;
     }
   }
+
+  private GenericValue parse(String valueStr) {
+    if (valueStr.toLowerCase().equals("nan")) {
+      valueStr = "NaN";
+    }
+    return new GenericValue(Double.parseDouble(valueStr));
+  }
 }