تحويل float64 إلى int في Go: كيفية تجاهل الجزء الكسري بشكل صحيح؟
Всем привет! Я только начал изучать Go, и столкнулся с проблемой при преобразовании чисел с плавающей точкой в целые числа. Мне нужно перевести значение типа `float64` в `int`, но я не уверен, как это сделать правильно.
Например, у меня есть код:
```go
package main
import "fmt"
func main() {
var price float64 = 19.99
var result int = int(price)
fmt.Println(result) // Выводит 19
}
```
Простое приведение типа `int(price)` работает, но я заметил, что оно просто отбрасывает дробную часть (усекает в сторону нуля). А что если мне нужно округлить до ближайшего целого? Или, может быть, я хочу получить "потолок" (ceil) или "пол" (floor)?
Кроме того, я читал, что в Go нет автоматического неявного преобразования между числовыми типами. Это значит, что я всегда должен делать явное приведение? И как быть с безопасностью? Вдруг число очень большое и не влезет в `int` (например, на 32-битной системе `int` — это 32 бита, а на 64-битной — 64 бита)?
Подскажите, пож