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.
El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…
En este post te voy a enseñar a designar una carpeta para imprimir todos los…
En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…
Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…
Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…
Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…
Esta web usa cookies.