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にキャストするように)
int()
を使用するだけです:
x := float32(3.1)
fmt.Println(int(x))
文字列変換などを使用せずに、必要に応じて3
を生成します。