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.@printf
— Macro@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
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
.
Los especificadores de ancho dinámico como %*s
y %0*.*f
requieren Julia 1.10.
Printf.@sprintf
— Macro@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"
Printf.Format
— TypePrintf.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.
Printf.Format
requiere Julia 1.6 o posterior.
Printf.format
— FunctionPrintf.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.