РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
90 of 1593 menu

Функция strconv.AppendFloat

Функция strconv.AppendFloat преобразует число с плавающей точкой в строковое представление согласно заданному формату и точности, а затем добавляет полученную строку в виде байтов в конец переданного байтового среза. Первым параметром функция принимает байтовый срез []byte, в который будет добавлен результат. Вторым параметром передается число с плавающей точкой типа float64, которое нужно преобразовать. Третьим параметром указывается формат вывода (например, 'f' для десятичного представления или 'e' для экспоненциальной записи). Четвертый параметр задает точность - количество знаков после запятой. Пятый параметр определяет размер числа (32 для float32 или 64 для float64). Функция возвращает новый байтовый срез, содержащий исходные данные и добавленное строковое представление числа.

Синтаксис

strconv.AppendFloat(dst, f, fmt, prec, bitSize)

Пример с десятичным форматом

Давайте преобразуем число 123.456 в десятичный формат с точностью до двух знаков:

package main import ( "fmt" "strconv" ) func main() { dst := []byte("Result: ") res := strconv.AppendFloat(dst, 123.456, 'f', 2, 64) fmt.Println(string(res)) }

Результат выполнения кода:

"Result: 123.46"

Пример с экспоненциальным форматом

Давайте преобразуем число 123.456 в экспоненциальный формат с точностью до двух знаков:

package main import ( "fmt" "strconv" ) func main() { dst := []byte("Result: ") res := strconv.AppendFloat(dst, 123.456, 'e', 2, 64) fmt.Println(string(res)) }

Результат выполнения кода:

"Result: 1.23e+02"

Пример с разной точностью

Давайте сравним вывод числа 1.23456789 с разной точностью:

package main import ( "fmt" "strconv" ) func main() { num := 1.23456789 dst := []byte("") res1 := strconv.AppendFloat(dst, num, 'f', 2, 64) res2 := strconv.AppendFloat(dst, num, 'f', 4, 64) res3 := strconv.AppendFloat(dst, num, 'f', 8, 64) fmt.Println(string(res1)) fmt.Println(string(res2)) fmt.Println(string(res3)) }

Результат выполнения кода:

"1.23" "1.2346" "1.23456789"

Пример с добавлением в существующий срез

Давайте добавим несколько чисел в один байтовый срез:

package main import ( "fmt" "strconv" ) func main() { dst := []byte("Numbers: ") dst = strconv.AppendFloat(dst, 1.23, 'f', 1, 64) dst = append(dst, ' ') dst = strconv.AppendFloat(dst, 4.56, 'f', 1, 64) dst = append(dst, ' ') dst = strconv.AppendFloat(dst, 7.89, 'f', 1, 64) fmt.Println(string(dst)) }

Результат выполнения кода:

"Numbers: 1.2 4.6 7.9"

Смотрите также

  • функцию strconv.FormatFloat,
    которая преобразует число с плавающей точкой в строку
  • функцию strconv.ParseFloat,
    которая преобразует строку в число с плавающей точкой
  • функцию strconv.AppendInt,
    которая добавляет целое число в байтовый срез
  • функцию strconv.AppendUint,
    которая добавляет беззнаковое целое число в байтовый срез
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить