Printf

Модуль Printf предоставляет функции форматированного вывода, аналогичные функции printf стандартной библиотеки C. Он позволяет форматированно выводить данные в поток вывода или в строку.

Printf.@printfMacro
@printf([io::IO], "%Fmt", args...)

Печатает args, используя строку спецификации формата в стиле C printf. При желании, IO может быть передан в качестве первого аргумента для перенаправления вывода.

Примеры

julia> @printf "Hello %s" "world"
Hello world

julia> @printf "Scientific notation %e" 1.234
Scientific notation 1.234000e+00

julia> @printf "Scientific notation three digits %.3e" 1.23456
Scientific notation three digits 1.235e+00

julia> @printf "Decimal two digits %.2f" 1.23456
Decimal two digits 1.23

julia> @printf "Padded to length 5 %5i" 123
Padded to length 5   123

julia> @printf "Padded with zeros to length 6 %06i" 123
Padded with zeros to length 6 000123

julia> @printf "Use shorter of decimal or scientific %g %g" 1.23 12300000.0
Use shorter of decimal or scientific 1.23 1.23e+07

julia> @printf "Use dynamic width and precision  %*.*f" 10 2 0.12345
Use dynamic width and precision        0.12

Для систематической спецификации формата смотрите здесь. Также смотрите @sprintf, чтобы получить результат в виде String, а не печатать его.

Предостережения

Inf и NaN печатаются последовательно как Inf и NaN для флагов %a, %A, %e, %E, %f, %F, %g и %G. Более того, если число с плавающей запятой равно близко к числовым значениям двух возможных строк вывода, выбирается строка вывода, находящаяся дальше от нуля.

Примеры

julia> @printf("%f %F %f %F", Inf, Inf, NaN, NaN)
Inf Inf NaN NaN

julia> @printf "%.0f %.1f %f" 0.5 0.025 -0.0078125
0 0.0 -0.007812
Julia 1.8

Начиная с Julia 1.8, ширина %s (строка) и %c (символ) вычисляется с использованием textwidth, который, например, игнорирует символы нулевой ширины (такие как комбинирующие символы для диакритических знаков) и рассматривает определенные "широкие" символы (например, эмодзи) как ширину 2.

Julia 1.10

Динамические спецификаторы ширины, такие как %*s и %0*.*f, требуют Julia 1.10.

source
Printf.@sprintfMacro
@sprintf("%Fmt", args...)

Возвращает @printf отформатированный вывод в виде строки.

Примеры

julia> @sprintf "this is a %s %15.1f" "test" 34.567
"this is a test            34.6"
source
Printf.FormatType
Printf.Format(format_str)

Создайте объект формата, совместимый с C printf, который можно использовать для форматирования значений.

Входная строка format_str может включать любой допустимый символ спецификатора формата и модификаторы.

Объект Format можно передать в Printf.format(f::Format, args...), чтобы получить отформатированную строку, или Printf.format(io::IO, f::Format, args...), чтобы напрямую вывести отформатированную строку в io.

Для удобства можно использовать строковый макрос Printf.format"..." для создания объекта Printf.Format во время расширения макроса.

Julia 1.6

Printf.Format требует Julia 1.6 или более поздней версии.

source
Printf.formatFunction
Printf.format(f::Printf.Format, args...) => String
Printf.format(io::IO, f::Printf.Format, args...)

Примените объект формата f к предоставленным args и верните отформатированную строку (1-й метод) или напечатайте непосредственно в объект io (2-й метод). См. @printf для получения дополнительной информации о поддержке C printf.

source