Правильное форматирование чисел может быть сложной задачей. А форматирование валют создает дополнительные проблемы, связанные с локализацией. К счастью, в Go есть функции, которые могут помочь.
Стандартная библиотека Go предоставляет различные инструменты для форматирования чисел. Пакет strconv включает функции для анализа и преобразования чисел в строки и из них.
Пакет strconv
strconv package — мощный инструмент для преобразования чисел в строки. Вы можете использовать его для работы с числами в различных форматах.
strconv входит в стандартную библиотеку, поэтому подходит для многих основные концепции Go, с которыми вы должны быть знакомы. Вот как вы можете импортировать его:
Импортировать"стрконв"
Пакет предоставляет функции для преобразования чисел в строки и обратно в различных форматах. Он включает функции для работы с целыми числами и числами с плавающей запятой.
strconv также может обрабатывать преобразование в и из двоичных, восьмеричных и шестнадцатеричных форматов, а также экспоненциальное представление.
Форматирование целых чисел в Go
Пакет strconv Итоа Функция предоставляет функциональные возможности для преобразования целых чисел в строки. Итоа Функция принимает целое число и возвращает строковое представление этого целого числа.
Импортировать (
"ФМТ"
"стрконв"
)
функцияосновной() {
целые числа := 3043
stringVersion := strconv. Итоа (целые числа)
ФМТ. Println (строковая версия) // Вывод: "3043"
}
Этот код преобразует целочисленное значение в строку, используя Итоа. Затем он выводит результирующую строку на консоль с помощью команды ФМТ упаковка.
В добавок к Итоа функция, strconv обеспечивает:
- ФорматInt для форматирования целых чисел в виде строк с заданным основанием
- AppendInt для добавления целых чисел в строковой форме к фрагменту байтов.
Вот как вы можете использовать ФорматInt функция для форматирования целого числа:
Импортировать (
"ФМТ"
"стрконв"
)
функцияосновной() {
целые числа := 12345
строки := strconv. ФорматInt(int64(целые числа), 10)
ФМТ. Println (строки) // Вывод: "12345"
}
Этот код использует int64() для преобразования исходного значения в 64-битное целое число. Затем он передает результат в ФорматInt, вместе с базой для конвертации, в данном случае 10. FormatInt возвращает строку, которая Распечатать затем выводит на консоль.
AppendInt функция принимает байтовый срез, int64 значение и основание.
Импортировать (
"ФМТ"
"стрконв"
)
функцияосновной() {
целые числа := 12345
байтСлайс := делать([]байт, 0, 20)
byteSlice = стрконв. AppendInt (byteSlice, int64(целые числа), 10)
ФМТ. Распечатать(нить(байтовый срез)) // Вывод: "12345"
}
Обратите внимание, что AppendInt получает фрагмент байта для добавления и возвращает результирующий фрагмент байта. В этом случае начальный байтовый срез пуст, но имеет емкость 20 для хранения результирующего строкового представления целого числа.
Разбор строк как целых чисел
Атой Функция преобразует строки в целые числа. Он принимает строку в качестве входных данных и возвращает целочисленное представление этой строки вместе с типом ошибки.
Вот как вы можете использовать Атой функция преобразования строки в целое число:
Импортировать (
"ФМТ"
"стрконв"
)функцияосновной() {
строки := "123"
целые числа, ошибка := strconv. Атои (струнные)если ошибся != ноль {
ФМТ. Println (ошибка)
}
ФМТ. Println (целые числа)
}
Программа выводит на консоль целочисленное значение:
Вы также можете использовать ParseUint функция для анализа строкового представления целых чисел без знака.
упаковка основной
Импортировать (
"ФМТ"
"стрконв"
)функцияосновной() {
// анализировать строку как 10-битное и 0-битное целое число без знака
val, err := strconv. ParseUint("12345", 10, 0)
если ошибся != ноль {
ФМТ. Println (ошибка)
} еще {
ФМТ. Println (значение) // Вывод: 12345
}
}
ParseUint Функция анализирует строку 12345 как целое число без знака с основанием 10. 0-битный размер гарантирует, что он возвращает стандартный тип int. Он возвращает проанализированное значение и ошибку.
Вы можете использовать ParseFloat Функция для анализа строкового представления числа с плавающей запятой.
Импортировать (
"ФМТ"
"стрконв"
)функцияосновной() {
// разобрать строку как 64-битное число с плавающей запятой
val, err := strconv. ParseFloat("3.14", 64)
если ошибся != ноль {
ФМТ. Println (ошибка)
} еще {
ФМТ. Println (значение) // Вывод: 3.14
}
}
ParseFloat Функция анализирует строку как 64-битное число с плавающей запятой и возвращает строку и тип ошибки.
Форматирование валют в Go
Создание приложения, взаимодействующего с валютами, требует форматирования и синтаксического анализа чисел. Работа с разными валютами может быть сложной задачей, но strconv и бухгалтерский учет пакеты могут помочь вам отформатировать их.
Вот как вы можете преобразовать строку валюты в число с плавающей запятой для операций с валютой:
Импортировать (
"ФМТ"
"стрконв"
)функцияосновной() {
// Строка валюты для анализа
валютастр := "$1,234.56"// Удалить символ валюты и преобразовать в число с плавающей запятой
floatVal, err := strconv. ParseFloat (currencyStr[1:], 64)если ошибся != ноль {
ФМТ. Println (ошибка)
возвращаться
}
// Печатаем проанализированное значение с плавающей запятой
ФМТ. Println (число с плавающей запятой) // Вывод: 1234,56
}
валюта Str переменная представляет собой строковое представление значения валюты со знаком доллара в качестве символа. В программе используется ParseFloat функция для анализа строки валюты, начиная со второго элемента (после символа валюты).
Обычно лучше избегать использования чисел с плавающей запятой для валют, так как это может привести к просчетам и ошибкам в производстве.
Кроме того, вы можете использовать сторонний пакет, например бухгалтерский учет который имеет функциональные возможности для форматирования и анализа валют.
Запустите эту команду терминала в каталоге вашего проекта, чтобы установить пакет учета:
зайди на github.com/leekchan/accounting
Начните с создания экземпляра Бухгалтерский учет структура. Напомним, что структуры являются одним из Основные объектно-ориентированные функции Go, аналогично классам из других языков. Вы можете инициализировать экземпляр Accounting с символом валюты и значением точности, среди других опций.
Вы можете использовать ФорматДеньги функция бухгалтерского пакета для форматирования чисел в валюты.
упаковка основной
Импортировать (
"ФМТ"
"математика/большой""github.com/leekchan/бухгалтерский учет"
)
функцияосновной() {
ак := бухгалтерский учет. Бухгалтерский учет{Символ: "$", Точность: 2}
ФМТ. Println (ак. ФорматДеньги(123456789.213123))
ФМТ. Println (ак. ФорматДеньги(12345678))
ФМТ. Println (ак. Формат Деньги (больш. НоваяКрыса(77777777, 3)))
ФМТ. Println (ак. Формат Деньги (больш. НоваяКрыса(-77777777, 3)))
ФМТ. Println (ак. ФорматMoneyBigFloat (большой. НовыйПлавающий(123456789.213123)))
}
переменный ток переменная является учетным экземпляром. Эта программа форматирует и печатает денежные значения, используя ФорматДеньги и ФорматДеньгиБольшойПоплавок методы учетной инстанции. НовыйКрыса функцию от большой package создает рациональное число с учетом числителя и знаменателя. НовыйПлавающий Функция помогает представлять большие числа с плавающей запятой.
Go может помочь вам отформатировать и другие типы
Go предоставляет множество функций для простого преобразования чисел и валют.
Язык также предлагает мощную систему форматирования строк. Функция Sprintf пакета fmt, вдохновленная C, позволяет создавать форматированные строки с использованием специального синтаксиса заполнителя. Вы можете использовать Sprintf для создания строк, содержащих числа и денежные значения, что упрощает создание удобочитаемого вывода.