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.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.