significativas separadores separador salida numeros moneda miles formato formateo decimales con coma cifras c formatting

separadores - ¿Cómo puedo formatear la moneda con comas en C?



separador de miles en textbox c# (2)

Estoy buscando formatear un flotador largo como moneda en C. Me gustaría colocar un signo de dólar al comienzo, comas que iteran cada tercer dígito antes del decimal, y un punto inmediatamente antes del decimal. Hasta ahora, he estado imprimiendo números así:

printf("You are owed $%.2Lf!/n", money);

que devuelve algo como

You are owed $123456789.00!

Los números deberían verse así

$123,456,789.00
$1,234.56
$123.45

Cualquier respuesta no necesita estar en el código real. No tienes que alimentar con cuchara. Si hay detalles relacionados con c que podrían ser de ayuda, por favor mencione. Else pseudocódigo está bien.

Gracias.


No creo que haya una función C para hacer eso, ¿pero podrías escribir la tuya? Diga el float price = 23234.45 . Primer (int)price impresión (int)price con comas, imprima un punto decimal; luego para la parte decimal, haga printf("%d", (int)(price*100)%100);


Su printf ya podría ser capaz de hacerlo por sí mismo con la '' bandera. Sin embargo, es probable que necesites configurar tu configuración regional. Aquí hay un ejemplo de mi máquina:

#include <stdio.h> #include <locale.h> int main(void) { setlocale(LC_NUMERIC, ""); printf("$%''.2Lf/n", 123456789.00L); printf("$%''.2Lf/n", 1234.56L); printf("$%''.2Lf/n", 123.45L); return 0; }

Y ejecutarlo:

> make example clang -Wall -Wextra -Werror example.c -o example > ./example $123,456,789.00 $1,234.56 $123.45

Este programa funciona de la manera que desee en mi Mac (10.6.8) y en una máquina Linux (Ubuntu 10.10). Lo intenté.