在Go中将float64转换为int:如何正确丢弃小数部分?
大家好!我刚开始学习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位)?
请指教,谢谢!