Вопрос:
Учитывая число, например, 1.400126761e + 09 в Golang, что я могу использовать, чтобы передать его int? Я попытался использовать библиотеку strconv, чтобы поиграть с ней и преобразовать ее с помощью FormatFloat, но эта функция возвращает то же самое, когда я даю ему флаг “e”. Любые другие функции/библиотеки, которые будут обрабатывать это преобразование в int?
Лучший ответ:
Просто используйте int(). Например:
x := float32(3.1) fmt.Println(int(x)) Ответ №1
ParseFloat не возвращает одно и то же, возвращая float64 или float32. После его использования вы можете просто преобразовать в int как обычно:
s := «1.400126761e+09» f, err := strconv.ParseFloat(s, 64) if err == nil { thisisanint := int(f) fmt.Println(thisisanint) } else { fmt.Println(err) }
Ответ №2
Я на самом деле не был ясен, поскольку переменная, которую я играл, использует интерфейс {} и просто нуждалась в утверждении типа float64, прежде чем использовать его как int(). Надеюсь это поможет!