Golang : Display float in 2 decimal points and rounding up or down
We will cover 2 items for this tutorial.
First, we will learn how to display a float number in decimal points with the fmt.Printf()
function. The %0.2f
inside fmt.Printf()
function tells Golang to display up to 2 decimal points. To increase the precision, simply adjust the number from %0.2f
to %0.#f
. # being the number of digits to display the after the decimal point.
Next, Golang math package lacks of functions to do rounding on float numbers. The code example below has 3 functions - one to do rounding, next for rounding up and another to do rounding down for a float value.
Here you go!
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.Printf("%0.2f \n", Round(f)) // round half
fmt.Printf("%0.2f \n", RoundUp(f, 2))
fmt.Printf("%0.2f \n", RoundDown(f, 2))
}
NOTE : Change value of f to -123.123456
and see how it goes.
Output :
123.12
123.00
123.13
123.12
References :
http://golang.org/pkg/math/#Ceil
By Adam Ng
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.
Advertisement
Tutorials
+4.8k Unix/Linux : How to pipe/save output of a command to file?
+9.1k Golang : How to use Gorilla webtoolkit context package properly
+10.8k Android Studio : Simple input textbox and intercept key example
+9.4k Golang : Create and shuffle deck of cards example
+22.1k Golang : Use TLS version 1.2 and enforce server security configuration over client
+17.5k Golang : Check if IP address is version 4 or 6
+9.5k Golang : Terminate-stay-resident or daemonize your program?
+18.8k Golang : Get download file size
+10.1k Golang : Check if user agent is a robot or crawler example
+12.5k Golang : Flush and close file created by os.Create and bufio.NewWriter example
+7.2k Golang : Gorrila mux.Vars() function example
+13.2k Golang : Handle or parse date string with Z suffix(RFC3339) example