Si encuentras algo que te causa duda puedes dejarnos un comentario y trataremos de ayudarte lo mas rápido que podamos.
Solución:
int(f+0.5)
hará que se redondee hacia arriba si es> = .5
Podrías usar int(math.Round(f))
para redondear al número entero más cercano al convertir un flotante en un int en Go. El decimal también se descarta cuando un flotante se establece en un byte o una runa. El truncamiento no ocurre cuando se establece en un string o un bool.
package main
import (
. "fmt"
. "math"
)
func main()
f := 3.6
c := []interfacebyte(f), f, int(Round(f)), rune(f), Sprintf("%.f", f), f != 0
checkType(c)
func checkType(s []interface)
for k, _ := range s
Printf("%T %vn", s[k], s[k])
Round devuelve el número entero más cercano, redondeando a la mitad desde cero. Consulte https://golang.org/pkg/math/#Round. Consulte https://stackoverflow.com/a/61503758/12817546.
f := 3.6
trunca a “uint8 3”, f
es “float64 3.6”, int(Round(f))
redondea a “int 4”, rune(f)
trunca a “int32 3”, Sprintf("%.f", f)
es “string 3.6 “y f != 0
salidas “bool true”.