From 5a9b0d4cc3db90eac20448016f63db8c39ea476d Mon Sep 17 00:00:00 2001 From: spf13 Date: Mon, 7 Apr 2014 11:43:25 -0400 Subject: [PATCH] adding Int to Float. Testing for float --- cast_test.go | 8 ++++++++ caste.go | 10 ++++++++++ 2 files changed, 18 insertions(+) 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 @@ func TestToInt(t *testing.T) { 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 @@ func ToFloat64E(i interface{}) (float64, bool) { 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 {