在Go中从float32转换为int

时间:2011-11-09 19:07:30

标签: casting go rounding

我已经尝试了几种方法将float转换为int,我想要的是截断一个float,所以我只得到整数部分。 我正在使用

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

但是如果x为3.9,则y将变为4,因为此函数将舍入float32而不是截断。 有没有一种截断而不是舍入的方法?如果是这样,是否可以在不涉及字符串的情况下进行? (比如在C中将float转换为int)

1 个答案:

答案 0 :(得分:51)

只需使用int()

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

根据需要生成3,而不必使用字符串转换等。