2011-11-09 7 views
27

floatをintにキャストする方法をいくつか試しました。浮動小数点を切り捨てるだけで整数部分しか得られません。 私はfloat32からgoへのキャスト

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

を使用しています。しかし、xが3.9の場合、この関数はのfloat32代わりの切り捨てを丸めますので、yは4になります。 丸めの代わりにトランケートする方法はありますか?もしそうなら、文字列を使わずにそれを行うことは可能でしょうか?

答えて

45

ちょうどint()を使う(フロートをキャストするようにC言語でintに):

文字列変換などを使用することなく、必要に応じて 3生成
x := float32(3.1) 
fmt.Println(int(x)) 

関連する問題