Форматированный вывод
Ряд возможностей для вывода и не только предоставляет пакет fmt. До этого мы использовали только Print и Println. Однако, бывают ситуации, когда нам понадобится вывести, допустим у числа float64 только 2 знака после запятой. Подобные операции удобно делать через функцию Printf:
package main
import (
"fmt"
"math"
)
func main() {
fmt.Println(math.Pi)
fmt.Printf("%.2f", math.Pi)
}
Для чисел с плавающей точкой можно указать точность или количество символов в дробной части. Для этого количество символов указывается после точки: %.2f означает, что выведутся только две цифры после точки. Существуют и другие варианты форматирования чисел с плавающей точкой:
%f: точность и ширина значения по умолчанию%5f: ширина - 5 символов и точность по умолчанию%.2f: ширина по умолчанию и точность - 2 символа%5.2f: ширина - 5, точность - 2%5.f: ширина - 5, точность - 0
%f - один из многих спейификаторов форматирования. Существуют множество других спецификаторов, каждый из которых представляет набор символов, которые интерпретируются определенным образом и обозначаются занком процента %. Примеры спецификаторова следующие:
%t: для вывода значений типа bool (trueилиfalse)%b: для вывода целых чисел в двоичной системе%c: для вывода символов, представленных числовым кодом%d: для вывода целых чисел в десятичной системе (int)%o: для вывода целых чисел в восьмеричной системе%q: для вывода символов в одинарных кавычках%x: для вывода целых чисел в шестнадцатиричной системе, буквенные символы числа имеют нижний регистр a-f%X: для вывода целых чисел в шестнадцатиричной системе, буквенные символы числа имеют верхний регистр A-F%U: для вывода символов в формате кодов Unicode, например, U+1234%e: для вывода чисел с плавающей точкой в экспоненциальном представлении, например, -1.234456e+78%E: для вывода чисел с плавающей точкой в экспоненциальном представлении, например, -1.234456E+78%f: для вывода чисел с плавающей точкой, например, 123.456%F: аналог%f%s: для вывода строки%p: дла вывода значения укзателя (шестнадцатиричного адреса)
Существет и универсальный спецификатор %v, который для типа bool аналогичен %t, для целочисленных типов - %d, для чисел с плавающей точной - %g, для строк - %s.
Примеры использования:
package main
import "fmt"
func main() {
var BigNumInt int64 = 100500
var BigNumFloat float64 = 100500.100500
var word string = "word"
fmt.Printf("This is a big num integer: %d\n", BigNumInt)
fmt.Printf("This is a cut version of big num float: %.2f\n", BigNumFloat)
fmt.Printf("This is just a word: %s", word)
}