web-dev-qa-db-ja.com

Goのfloat32からintへのキャスト

Floatをintにキャストする方法をいくつか試しましたが、floatを切り捨てて整数部分のみを取得することをお勧めします。私は使っています

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

ただし、xが3.9の場合、この関数はfloat32を切り捨てずに丸めるため、yは4になります。丸める代わりに切り捨てる方法はありますか?もしそうなら、文字列を使用せずにそれを行うことは可能ですか? (Cでfloatをintにキャストするように)

30
Goodwine

int()を使用するだけです:

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

文字列変換などを使用せずに、必要に応じて3を生成します。

51
Chris Bunch