Как преобразовать float в формате xxxxxxxe + 09 в int в Go?

Вопрос:

Учитывая число, например, 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(). Надеюсь это поможет!

Оцените статью
TechArks.Ru
Добавить комментарий