Floating point math has many pitfalls. https://play.golang.org/p/LK0lla8hM9w See also https://0.30000000000000004.com/
s On Saturday, January 25, 2020 at 7:14:15 PM UTC-8, Jason E. Aten wrote: > > > https://play.golang.org/p/87bDubJxjHO > > I'd like to truncate a float64 to just 2 decimal places (in base 10), but > math.Trunc is not helping me here... ideally I put 0.29 in and I get 0.29 > out. > Suggestions? Playground examples appreciated. > > package main > > import ( > "fmt" > "math" > ) > > // truncate off everything after the last two decimals, no rounding. > func decimal2(x float64) float64 { > return math.Trunc(x*100) / 100 > } > > func main() { > x := 0.29 > y := decimal2(x) > fmt.Printf("x=%v -> y = %v", x, y) // prints x=0.29 -> y=0.28 > } > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/d3250e2a-e72d-40e5-987c-b9f5012dd3cc%40googlegroups.com.