diff --git a/mappers/field.inc b/mappers/field.inc
index 43d62c4..c766ce5 100644
--- a/mappers/field.inc
+++ b/mappers/field.inc
@@ -58,9 +58,16 @@ function field_feeds_set_target_numeric($source, $entity, $target, $value) {
     $value = array($value);
   }
   foreach ($value as $k => $v) {
-    if (!is_numeric($v)) {
+    // Adding with 0 is because a float value with a comma in quotes ("3,14159")
+    // is not a valid number according to PHP but it should in this case.
+    if (!is_numeric(0 + $v)) {
       unset($value[$k]);
     }
+    // If value is float and the value has a comma (",") in it we need to replace
+    // the comma with a period instead before trying store it in the database.
+    if (preg_match('/\d+,\d+/', $v)) {
+      $value[$k] = (float) strtr($value[$k], ',', '.');
+    }
   }
   _field_feeds_set_target($source, $entity, $target, $value, FALSE);
 }
