2011-11-09 10 views
27

Ho provato diversi modi per trasmettere un float a un int, quello che voglio è troncare un float in modo da ottenere solo la parte intera. Sto usandotrasmesso da float32 a int in Go

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

Ma se x è 3.9, y diventerò 4, in quanto questa funzione arrotonderà il float32 invece di troncare. C'è un modo di troncare invece di arrotondare? e se è così, è possibile farlo senza coinvolgere le stringhe? (Come gettare un galleggiante a int in C)

risposta

45

Basta usare int():

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

che produce 3 come necessario, senza dover ricorrere alla conversione di stringhe o simili.