# Golang : Round float to precision example

Tags :

Just an add on for my previous tutorial on how to round up or down a float number. For this short tutorial, we will learn how to round float numbers to certain precision.

`````` fmt.Printf("%0.2f \n", f)

fmt.Printf("%0.2f \n", Round(f)) // round half

fmt.Printf("%0.2f \n", RoundUp(f, 2)) // change 2 to 5 will have no effect

fmt.Printf("%0.2f \n", RoundDown(f, 3))  // change 3 to 4 will have no effect
``````

which will output the precision up to 2 decimal point no matter how you instruct the Round, RoundUp and RoundDown functions.

This is because of `fmt.Printf(%0.2\n)` will always overrule the final display format.

To fix this problem or to display the precision properly, you will have to use `fmt.Println()` instead.

`````` var f float64 = 123.123456

fmt.Printf("%0.2f \n", f)

fmt.Println(Round(f)) // round half

fmt.Println(RoundUp(f, 4)) // up to precision 4

fmt.Println(RoundDown(f, 4)) // up to precision 4
``````

Output :

123.12

123

123.1235

123.1234

Here's the full code :

`````` package main

import (
"fmt"
"math"
)

func Round(input float64) float64 {
if input < 0 {
return math.Ceil(input - 0.5)
}
return math.Floor(input + 0.5)
}

func RoundUp(input float64, places int) (newVal float64) {
var round float64
pow := math.Pow(10, float64(places))
digit := pow * input
round = math.Ceil(digit)
newVal = round / pow
return
}

func RoundDown(input float64, places int) (newVal float64) {
var round float64
pow := math.Pow(10, float64(places))
digit := pow * input
round = math.Floor(digit)
newVal = round / pow
return
}

func main() {
var f float64 = 123.123456

fmt.Printf("%0.2f \n", f)

fmt.Println(Round(f)) // round half

fmt.Println(RoundUp(f, 4))

fmt.Println(RoundDown(f, 4))
}
``````

Reference :

https://www.socketloop.com/tutorials/golang-display-float-in-2-decimal-points-and-rounding-up-or-down

Tags :

IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.