adding Int to Float. Testing for float
diff --git a/cast_test.go b/cast_test.go
index c9f642c..1015877 100644
--- a/cast_test.go
+++ b/cast_test.go
@@ -21,6 +21,14 @@
 	assert.Equal(t, ToInt(eight), 8)
 }
 
+func TestToFloat64(t *testing.T) {
+	var eight interface{} = 8
+	assert.Equal(t, ToFloat64(8), 8.00)
+	assert.Equal(t, ToFloat64(8.31), 8.31)
+	assert.Equal(t, ToFloat64("8.31"), 8.31)
+	assert.Equal(t, ToFloat64(eight), 8.0)
+}
+
 func TestToString(t *testing.T) {
 	var foo interface{} = "one more time"
 	assert.Equal(t, ToString(8), "8")
diff --git a/caste.go b/caste.go
index e58d1ae..bcc4fd2 100644
--- a/caste.go
+++ b/caste.go
@@ -59,6 +59,16 @@
 		return s, true
 	case float32:
 		return float64(s), true
+	case int64:
+		return float64(s), true
+	case int32:
+		return float64(s), true
+	case int16:
+		return float64(s), true
+	case int8:
+		return float64(s), true
+	case int:
+		return float64(s), true
 	case string:
 		v, err := strconv.ParseFloat(s, 64)
 		if err == nil {