2011-11-09 10 views
27

Bir float için bir float atmanın birkaç yolunu denedim, istediğim şey bir float'ı kesmek, böylece yalnızca tamsayı kısmını aldım. Ben float32'den int'ye gitmek için 0'dan

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

kullanıyorum Ama x 3.9 ise bu işlev kesmek yerine, float32 yuvarlayacağını çünkü y 4 olacak. Yuvarlama yerine bir kısaltma yolu var mı? ve eğer öyleyse, dizeleri içermeden bunu yapmak mümkün mü?

cevap

45

Sadece int() kullanmak (bir şamandıra döküm gibi C int):

dize dönüşümleri veya benzeri kullanmak zorunda kalmadan, gerektiğinde 3 üretir
x := float32(3.1) 
fmt.Println(int(x)) 

.