diff --git a/lexer_test.go b/lexer_test.go
index 82946bf..d8abb35 100644
--- a/lexer_test.go
+++ b/lexer_test.go
@@ -464,6 +464,13 @@
 		token{Position{1, 7}, tokenInteger, "1_2_3_4_5"},
 		token{Position{1, 16}, tokenEOF, ""},
 	})
+
+	testFlow(t, "flt8 = 9_224_617.445_991_228_313", []token{
+		token{Position{1, 1}, tokenKey, "flt8"},
+		token{Position{1, 6}, tokenEqual, "="},
+		token{Position{1, 8}, tokenFloat, "9_224_617.445_991_228_313"},
+		token{Position{1, 33}, tokenEOF, ""},
+	})
 }
 
 func TestMultiline(t *testing.T) {
diff --git a/parser.go b/parser.go
index 59f513b..7ba872b 100644
--- a/parser.go
+++ b/parser.go
@@ -231,7 +231,8 @@
 		}
 		return val
 	case tokenFloat:
-		val, err := strconv.ParseFloat(tok.val, 64)
+		cleanedVal := strings.Replace(tok.val, "_", "", -1)
+		val, err := strconv.ParseFloat(cleanedVal, 64)
 		if err != nil {
 			p.raiseError(tok, "%s", err)
 		}
diff --git a/parser_test.go b/parser_test.go
index ebf1626..94308a4 100644
--- a/parser_test.go
+++ b/parser_test.go
@@ -68,7 +68,7 @@
 	})
 }
 
-func TestIntegersWithUnderscores(t *testing.T) {
+func TestNumbersWithUnderscores(t *testing.T) {
 	tree, err := Load("a = 1_000")
 	assertTree(t, tree, err, map[string]interface{}{
 		"a": int64(1000),
@@ -83,6 +83,16 @@
 	assertTree(t, tree, err, map[string]interface{}{
 		"a": int64(12345),
 	})
+
+	tree, err = Load("flt8 = 9_224_617.445_991_228_313")
+	assertTree(t, tree, err, map[string]interface{}{
+		"flt8": float64(9224617.445991228313),
+	})
+
+	tree, err = Load("flt9 = 1e1_00")
+	assertTree(t, tree, err, map[string]interface{}{
+		"flt9": float64(1e100),
+	})
 }
 
 func TestFloatsWithExponents(t *testing.T) {
