Используйте функцию strconv.ParseFloat для анализа строки как числа с плавающей запятой с точностью, указанной в bitSize: 32 для float32 или 64 для float64.
Для примера:
func ParseFloat(s string, bitSize int) (float64, error)
Когда bitSize равен 32, результат все еще имеет тип float64, но он будет преобразован в float32 без изменения его значения.
f := "3.14159265"
if s, err := strconv.ParseFloat(f, 32); err == nil {
fmt.Println(s) // 3.1415927410125732
}
if s, err := strconv.ParseFloat(f, 64); err == nil {
fmt.Println(s) // 3.14159265
}
Спасибо за подробный пример. Теперь сам попробую в компиляторе своими пальчиками написать подобный код. Надеюсь, он запустится без ошибок.
Посмотри на голанг орг статью о конвертировании типов данных в Golang. Там расписаны вообще все случаи, не только float в integer. Плюс есть советы, как в будущем не допускать глупых ошибок.
Просто приведение к int усекает float, который, если ваша система внутренне представляет 2.0 как 1.9999999999, вы не получите то, что ожидаете. Различные преобразования printf имеют дело с этим и правильно округляют число при преобразовании. Таким образом, чтобы получить более точное значение, преобразование еще сложнее, чем вы могли бы сначала ожидать:
Спасибо большое, ребят, попробовал многие методы из тех, которые вы скинули, и у меня всё получилось. Пойду дочитывать всё остальное и буду начинать писать свою небольшую, но очень интересную программку, в которой будут использоваться эти методы.