Formatear dinero con C (imprimir número formateado como moneda)
En este post de programación en lenguaje C vamos a ver cómo formatear dinero o moneda, de tal forma que un número como 1234567.89 se convierta en $1,234,567.89 separando decimales y miles.
Básicamente vamos a formatear un número como pesos, moneda, currency o dinero en C.
Lo único que vamos a usar es un modificador de formato, así que vamos a usar esto con printf
o snprintf
.
El modificador del que hablo es el '
, con este modificador vamos a formatear el dinero, aunque antes debemos configurar el locale con setlocale
.
Es tan simple como lo siguiente:
#include <stdio.h>
#include <locale.h>
int main(void)
{
setlocale(LC_NUMERIC, "");
long double dinero = 1234567.89;
printf("$%'.2Lf\n", dinero);
return 0;
}
En la línea 6 configuramos el locale, después declaramos la cantidad en la línea 7 (esta puede venir de cualquier lugar).
La magia sucede en la línea 8 en donde se imprime un número y se formatea como dinero, con la siguiente salida:
Obviamente puedes imprimir más cadenas antes o después, y todo eso. También puedes usar la función snprintf
que formatea la cadena dentro de otra cadena así:
#include <stdio.h>
#include <locale.h>
#define MAXIMA_LONGITUD_CADENA 100
int main(void)
{
char cadena[MAXIMA_LONGITUD_CADENA] = "";
setlocale(LC_NUMERIC, "");
long double dinero = 1234567.89;
snprintf(cadena, MAXIMA_LONGITUD_CADENA, "$%'.2Lf", dinero);
printf("La cadena formateada es '%s'", cadena);
return 0;
}
La salida en ese caso sería: La cadena formateada es ‘$1,234,567.89’
Para terminar te dejo con más tutoriales de programación en C.
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta semana estuve recreando la API del plugin para impresoras térmicas en Android (HTTP a…
Hoy te enseñaré a extraer la cadena base64 de una clave PEM usando una función…
Encender un foco con un Bot de Telegram es posible usando una tarjeta como la…
Esta web usa cookies.