[C con Clase] locale: No me separa los millares

marcelinux marcelinator en gmail.com
Lun Mayo 30 19:19:21 CEST 2016


El pasado 2016-05-26 21:11:24, marcelinux escribió:
 
m> Hola.
m> He probado el ejemplo de http://c.conclase.net/librerias/index.php?ansifun=localeconv#inicio
m> y no me separa los millares porque es una localización "C"
m> Entonces cambio
m> printf( "Localidad: \"%s\"\n\n", setlocale( LC_ALL, "C" ) );
m> por
m> printf( "Localidad: \"%s\"\n\n", setlocale( LC_ALL, "" ) );
m> para que tome la localización del sistema.
m> Y añado: printf( "Test de número %.3f\n", 123456789.123);
m> antes y después de modificar lcPtr.
m> :-(

OK. He encontrado en stackoverflow un comentario que viene a decir:
Si precedes el formato de printf con un apóstrofo, te respeta la localización para los números.
Entonces probé:
printf( "Test de número %'.3f\n", 123456789.123);
Y ¡voilà! El resultado es:
...
Test de número 123.456.789,123

Así que doy por resuelta mi duda.

Este es el comentario que me dio la solución (ver la última respuesta):
http://stackoverflow.com/questions/20352438/printf-output-not-affected-by-global-locale


Más información sobre la lista de distribución Cconclase