2011-11-09 22 views
27

He intentado varias formas de convertir un float en un int, lo que quiero es truncar un float, así que solo obtengo la parte entera. estoy usandoconversión de float32 a int en Go

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

Pero si x es 3,9, y se convertirá en 4 porque este función redondeará el float32 en lugar de truncar. ¿Hay alguna forma de truncar en lugar de redondear? y si es así, ¿es posible hacerlo sin involucrar cadenas? (Como echar un flotador a int en C)

Respuesta

45

sólo tiene que utilizar int():

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

que produce 3 según sea necesario, sin tener que utilizar la conversión de series o similares.