Add GetInt64

diff --git a/viper.go b/viper.go
index a2633b0..e5a360a 100644
--- a/viper.go
+++ b/viper.go
@@ -551,6 +551,12 @@
 	return cast.ToInt(v.Get(key))
 }
 
+// Returns the value associated with the key as an integer
+func GetInt64(key string) int64 { return v.GetInt64(key) }
+func (v *Viper) GetInt64(key string) int64 {
+	return cast.ToInt64(v.Get(key))
+}
+
 // Returns the value associated with the key as a float64
 func GetFloat64(key string) float64 { return v.GetFloat64(key) }
 func (v *Viper) GetFloat64(key string) float64 {
diff --git a/viper_test.go b/viper_test.go
index 858caff..aa9d7fe 100644
--- a/viper_test.go
+++ b/viper_test.go
@@ -763,6 +763,7 @@
 var yamlMergeExampleTgt = []byte(`
 hello:
     pop: 37890
+    lagrenum: 765432101234567
     world:
     - us
     - uk
@@ -773,6 +774,7 @@
 var yamlMergeExampleSrc = []byte(`
 hello:
     pop: 45000
+    lagrenum: 7654321001234567
     universe:
     - mw
     - ad
@@ -790,6 +792,14 @@
 		t.Fatalf("pop != 37890, = %d", pop)
 	}
 
+	if pop := v.GetInt("hello.lagrenum"); pop != 765432101234567 {
+		t.Fatalf("lagrenum != 765432101234567, = %d", pop)
+	}
+
+	if pop := v.GetInt64("hello.lagrenum"); pop != int64(765432101234567) {
+		t.Fatalf("int64 lagrenum != 765432101234567, = %d", pop)
+	}
+
 	if world := v.GetStringSlice("hello.world"); len(world) != 4 {
 		t.Fatalf("len(world) != 4, = %d", len(world))
 	}
@@ -806,6 +816,14 @@
 		t.Fatalf("pop != 45000, = %d", pop)
 	}
 
+	if pop := v.GetInt("hello.lagrenum"); pop != 7654321001234567 {
+		t.Fatalf("lagrenum != 7654321001234567, = %d", pop)
+	}
+
+	if pop := v.GetInt64("hello.lagrenum"); pop != int64(7654321001234567) {
+		t.Fatalf("int64 lagrenum != 7654321001234567, = %d", pop)
+	}
+
 	if world := v.GetStringSlice("hello.world"); len(world) != 4 {
 		t.Fatalf("len(world) != 4, = %d", len(world))
 	}