package float import "math" // ISO 80000-1:2012 // q = \sgn(y) \left\lfloor \left| y \right| + 0.5 \right\rfloor // = -\sgn(y) \left\lceil -\left| y \right| - 0.5 \right\rceil // Round a float value to n decimal places func Round(v float64, places int) float64 { scale := math.Pow(10, float64(places)) abs := math.Abs(v*scale) + 0.5 return math.Copysign(math.Floor(abs)/scale, v) }