formatierte ausgabe einer zahl (tausender stellen)



  • hi,

    ich beabsichtige den wert einer double variable z.b. 12345.67 in
    12.345,67 umzuwandeln (tausenderstellen).
    dies müsste doch eigentlich mit sprintf funktionieren.
    die umwandlung sollte in einen char-wert erfolgen.
    man sprintf

    ... 
     Für  einige  numerische  Umwandlungen  wird  ein  Radixzeichen  ("Dezi- 
           malkomma")   oder   ein  Tausender-Gruppierungszeichen  verwendet.  Des 
           tatsächlich benutzte Zeichen hängt vom LC_NUMERIC-Teil der  Locale  ab. 
           Die  POSIX-Locale  benutzt  `.'  als  Radixzeichen  und  hat kein Grup- 
           pierungszeichen. Damit resultiert 
                       printf("%'.2f", 1234567.89); 
           in `1234567.89' in der POSIX-Locale,  in  `1234567,89'  in  der  Locale 
           nl_NL und in `1.234.567,89' in der Locale da_DK.
    

    irgenwie vertehe ich jedoch nicht, wie ich hierbei die locale da_DK diesbezüglich nutzen kann?
    hat jemand für mich ein kleines beispiel <plz> ?

    cu...
    daniel



  • Keine Ahnung wie das mit printf() gehen soll,
    machs doch mit cout manuell:
    (ungefähr so)[quote]

    cout << int(n/1000) << "," << "..."; /*da gabs so ne funktion: alles nach dem komma abtrennen...*/
    

    MfG RoaN;



  • thx,

    nee, das ist nicht was ich suche ...



  • Hallo,
    schau dir mal die Funktion setlocal an.

    Falls du lieber mit den C++ Streams arbeitest, dann solltest du dir locale, basic_ios::imbue und das Facette moneypunct anschauen.


Anmelden zum Antworten