Convertendo float64 para int em Go: como descartar corretamente a parte fracionária?
Olá a todos! Comecei a estudar Go recentemente e me deparei com um problema ao converter números de ponto flutuante para inteiros. Preciso converter um valor do tipo `float64` para `int`, mas não tenho certeza de como fazer isso corretamente.
Por exemplo, tenho o código:
```go
package main
import "fmt"
func main() {
var price float64 = 19.99
var result int = int(price)
fmt.Println(result) // Exibe 19
}
```
A conversão simples `int(price)` funciona, mas notei que ela simplesmente descarta a parte fracionária (trunca em direção a zero). E se eu precisar arredondar para o inteiro mais próximo? Ou talvez eu queira obter o "teto" (ceil) ou o "piso" (floor)?
Além disso, li que em Go não há conversão implícita automática entre tipos numéricos. Isso significa que sempre devo fazer uma conversão explícita? E quanto à segurança? E se o número for muito grande e não couber em `int` (por exemplo, em um sistema de 32 bits, `int` tem 32 bits, e em um de 64 bits, tem 64 bits)?
Por favor, me ajudem.