приведение от float32 к int в Go - PullRequest
29 голосов
/ 09 ноября 2011

Я пробовал несколько способов привести число с плавающей точкой к int, я хочу урезать число с плавающей точкой, чтобы получить только целую часть.Я использую

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

Но если x равен 3.9, y станет 4, потому что эта функция будет округлять float32 вместо усечения.Есть ли способ усечения вместо округления?и если да, то возможно ли это сделать без привлечения строк?(как приведение числа с плавающей точкой к int в C)

1 Ответ

51 голосов
/ 09 ноября 2011

Просто используйте int():

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

, который выдает 3 по мере необходимости, без необходимости использования преобразования строк или тому подобного.

...