Conversión de float64 a int en Go: ¿cómo descartar correctamente la parte fraccionaria?
¡Hola a todos! Acabo de empezar a aprender Go y me encontré con un problema al convertir números de punto flotante a enteros. Necesito convertir un valor de tipo `float64` a `int`, pero no estoy seguro de cómo hacerlo correctamente.
Por ejemplo, tengo este código:
```go
package main
import "fmt"
func main() {
var price float64 = 19.99
var result int = int(price)
fmt.Println(result) // Muestra 19
}
```
La conversión simple de tipo `int(price)` funciona, pero noté que simplemente descarta la parte fraccionaria (trunca hacia cero). ¿Y qué pasa si necesito redondear al entero más cercano? O tal vez quiero obtener el "techo" (ceil) o el "piso" (floor)?
Además, leí que en Go no hay conversión implícita automática entre tipos numéricos. ¿Significa eso que siempre debo hacer una conversión explícita? ¿Y qué pasa con la seguridad? ¿Qué sucede si el número es muy grande y no cabe en `int` (por ejemplo, en un sistema de 32 bits `int` es de 32 bits, y en uno de 64 bits es de 64 bits)?
Por favor, aconsejen.