web-dev-qa-db-fra.com

cast de float32 en int dans Go

J'ai essayé plusieurs façons de convertir un flottant en un entier, ce que je veux, c'est de tronquer un flotteur pour que je n'obtienne que la partie entière. j'utilise

x := float32(3.1)
y,_ := strconv.Atoi((strconv.Ftoa32(x,'f',0))) //y becomes 3

Mais si x vaut 3,9, y deviendra 4 car cette fonction arrondira le float32 au lieu de la tronquer. Existe-t-il un moyen de tronquer au lieu d'arrondir? et si oui, est-il possible de le faire sans impliquer de chaînes? (comme lancer un float en int en C)

30
Goodwine

Utilisez simplement int():

x := float32(3.1)
fmt.Println(int(x))

Qui produit 3 selon les besoins, sans avoir à utiliser de conversions de chaînes ou similaires.

51
Chris Bunch