From 173daa6247f9249465bcdcc73247b5343e3d4c9c Mon Sep 17 00:00:00 2001 From: Adrian Gallagher Date: Wed, 26 Nov 2014 23:20:49 +1100 Subject: [PATCH] Add float rounding function. --- common.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/common.go b/common.go index 79bb4996..02cb892a 100644 --- a/common.go +++ b/common.go @@ -6,8 +6,29 @@ import ( "encoding/json" "io/ioutil" "errors" + "math" ) +func roundFloat(x float64, prec int) float64 { + var rounder float64 + pow := math.Pow(10, float64(prec)) + intermed := x * pow + _, frac := math.Modf(intermed) + intermed += .5 + x = .5 + if frac < 0.0 { + x = -.5 + intermed -= 1 + } + if frac >= x { + rounder = math.Ceil(intermed) + } else { + rounder = math.Floor(intermed) + } + + return rounder / pow +} + func CalculateAmountWithFee(amount, fee float64) (float64) { return amount + CalculateFee(amount, fee) }