Printf

El módulo Printf proporciona funciones de salida formateada similares a printf de la biblioteca estándar de C. Permite la impresión formateada en un flujo de salida o en una cadena.

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

Imprime args utilizando una cadena de especificación de formato al estilo de printf de C. Opcionalmente, se puede pasar un IO como primer argumento para redirigir la salida.

Ejemplos

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

Para una especificación sistemática del formato, consulta aquí. También consulta @sprintf para obtener el resultado como un String en lugar de que se imprima.

Advertencias

Inf y NaN se imprimen consistentemente como Inf y NaN para los flags %a, %A, %e, %E, %f, %F, %g, y %G. Además, si un número de punto flotante está igualmente cerca de los valores numéricos de dos posibles cadenas de salida, se elige la cadena de salida más alejada de cero.

Ejemplos

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

A partir de Julia 1.8, los anchos de %s (cadena) y %c (carácter) se calculan utilizando textwidth, que por ejemplo ignora caracteres de ancho cero (como los caracteres combinados para marcas diacríticas) y trata ciertos caracteres "anchos" (por ejemplo, emoji) como ancho 2.

Julia 1.10

Los especificadores de ancho dinámico como %*s y %0*.*f requieren Julia 1.10.

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

Devuelve la salida formateada de @printf como cadena.

Ejemplos

julia> @sprintf "esto es un %s %15.1f" "prueba" 34.567
"esto es un prueba            34.6"
source
Printf.FormatType
Printf.Format(format_str)

Crea un objeto de formato compatible con printf de C que se puede utilizar para formatear valores.

La entrada format_str puede incluir cualquier carácter de especificador de formato válido y modificadores.

Un objeto Format se puede pasar a Printf.format(f::Format, args...) para producir una cadena formateada, o Printf.format(io::IO, f::Format, args...) para imprimir la cadena formateada directamente en io.

Para mayor comodidad, se puede utilizar la forma de macro de cadena Printf.format"..." para construir un objeto Printf.Format en el momento de la expansión de la macro.

Julia 1.6

Printf.Format requiere Julia 1.6 o posterior.

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

Aplica un objeto de formato f a los argumentos proporcionados args y devuelve la cadena formateada (1ª método), o imprime directamente en un objeto io (2ª método). Consulta @printf para más detalles sobre el soporte de printf de C.

source