2011-11-09 30 views
27

我已經嘗試了幾種方法將一個float轉換爲一個int,我想要的是截斷一個float,所以我只得到整數部分。 我使用從float32轉換爲int轉到

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

但如果x爲3.9,y將成爲4,因爲該功能將圓的FLOAT32不是截斷的。 是否有截斷而不是四捨五入的方法?如果是這樣,是否可以做到而不涉及字符串? (如鑄造的浮子在C INT)

回答

45

只需使用int()

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

根據需要,而無需使用字符串轉換或類似的哪個產生3