diff --git a/user/super/com/google/gwt/emul/java/lang/Number.java b/user/super/com/google/gwt/emul/java/lang/Number.java
index 32ada57..04a85e1 100644
--- a/user/super/com/google/gwt/emul/java/lang/Number.java
+++ b/user/super/com/google/gwt/emul/java/lang/Number.java
@@ -345,7 +345,7 @@
     var floatRegex = @java.lang.Number::floatRegex;
     if (!floatRegex) {
       // Disallow '.' with no digits on either side
-      floatRegex = @java.lang.Number::floatRegex = /^\s*[+-]?((\d+\.?\d*)|(\.\d+))([eE][+-]?\d+)?\s*$/i;
+      floatRegex = @java.lang.Number::floatRegex = /^\s*[+-]?((\d+\.?\d*)|(\.\d+))([eE][+-]?\d+)?[dDfF]?\s*$/i;
     }
     if (floatRegex.test(str)) {
       return parseFloat(str);
diff --git a/user/test/com/google/gwt/emultest/java/lang/DoubleTest.java b/user/test/com/google/gwt/emultest/java/lang/DoubleTest.java
index f61a4ab..00520ed 100644
--- a/user/test/com/google/gwt/emultest/java/lang/DoubleTest.java
+++ b/user/test/com/google/gwt/emultest/java/lang/DoubleTest.java
@@ -151,5 +151,11 @@
     assertTrue(-2.56789e1 == Double.parseDouble("  -2.56789E1"));
     assertTrue(-2.56789e1 == Double.parseDouble("-2.56789e+01   "));
     assertTrue(-2.56789e1 == Double.parseDouble("   -2.56789E1   "));
+    
+    // Test that a float/double type suffix is allowed
+    assertEquals(1.0d, Double.parseDouble("1.0f"), 0.0);
+    assertEquals(1.0d, Double.parseDouble("1.0F"), 0.0);
+    assertEquals(1.0d, Double.parseDouble("1.0d"), 0.0);
+    assertEquals(1.0d, Double.parseDouble("1.0D"), 0.0);
   }
 }
diff --git a/user/test/com/google/gwt/emultest/java/lang/FloatTest.java b/user/test/com/google/gwt/emultest/java/lang/FloatTest.java
index 3254e20..2afc944 100644
--- a/user/test/com/google/gwt/emultest/java/lang/FloatTest.java
+++ b/user/test/com/google/gwt/emultest/java/lang/FloatTest.java
@@ -78,6 +78,13 @@
     assertEquals(-1.5f, Float.parseFloat("-1.5"), 0.0);
     assertEquals(3.0f, Float.parseFloat("3."), 0.0);
     assertEquals(0.5f, Float.parseFloat(".5"), 0.0);
+
+    // Test that a float/double type suffix is allowed
+    assertEquals(1.0f, Float.parseFloat("1.0f"), 0.0);
+    assertEquals(1.0f, Float.parseFloat("1.0F"), 0.0);
+    assertEquals(1.0f, Float.parseFloat("1.0d"), 0.0);
+    assertEquals(1.0f, Float.parseFloat("1.0D"), 0.0);
+
     // TODO(jat): it isn't safe to parse MAX/MIN_VALUE because we also want to
     // be able to get POSITIVE/NEGATIVE_INFINITY for out-of-range values, and
     // since all math in JS is done in double we can't rely on getting the
