STRFMON(3) | Manual del Programador de Linux | STRFMON(3) |
strfmon - convierte valores monetarios a una cadena
#include <monetary.h> ssize_t strfmon(char *s, size_t max, const char *format, ...);
La función strfmon() formatea las cantidades especificadas según la especificación de formato format y guarda el resultado en el array de caracteres s de tamaño max.
Los caracteres ordinarios en format se copian a s sin conversión. Los especificadores de conversión comienzan con un carácter `%'. Inmediatamente después puede haber cero o más de las siguientes opciones:
A continuación, puede haber una anchura de campo: una cadena de dígitos decimales especificando una anchura mínima de campo. El valor por defecto es 0. Un resultado más pequeño que esta anchura es rellenado con espacios (a la izquierda, a menos que se especifique la opción de justificado a la izquierda).
Seguidamente, pueda haber una precisión izquierda de la forma "#" seguido por una cadena de dígitos decimales. Si el número de dígitos a la izquierda del carácter decimal es más pequeño que esto, la representación se rellena a la izquierda con el carácter de relleno numérico. Los caracteres de agrupamiento no se tienen en cuenta en este ancho de campo.
Tras esto, puede haber una precisión derecha de la forma "." seguido por una cadena de dígitos decimales. La cantidad a formatear se redondea al número especificado de dígitos antes de formatear. El valor por omisión se especifica en los elementos frac_digits y int_frac_digits de la localización actual. Si la precisión derecha es 0, no se muestra ningún carácter decimal (el carácter decimal lo determina aquí LC_MONETARY y puede diferir del especificado por LC_NUMERIC.)
Finalmente, la especificación de conversión debe terminar con un carácter de conversión. Los tres carácteres de conversión son
La función strfmon() devuelve el número de caracteres puestos en el array s sin incluir el carácter NUL del final, siempre que la cadena, incluendo el NUL del final, quepa. En otro caso, asigna a errno el valor E2BIG, devuelve -1 y el contenido del array queda indefinido.
La llamada
strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]",
1234.567, 1234.567);
5 diciembre 2000 | Linux |