Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C++] Salvare i numeri con le virgole!

    Ciao a tutti, volevo semplicemente far salvare i risultati di alcuni calcoli con questo formato:
    123,456
    anzichè
    123.456

    come posso fare?

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Il modo più semplice è trasformarlo in stringa e sostituire il carattere.
    Il modo contorto è di cambiare momentaneamente il locale della formattazione (che alla fine,più o meno, si comporta come il primo modo).
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  3. #3
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    I float vengono memorizzati in binario, quello che chiedi è semmai di stamparli diversamente.
    Prendi la parte intera e la memorizzi in un intero.Prendi la parte frazionaria e la memorizzi in un intero moltiplicandola per 10^ numero ci cifre significative che vuoi stampare.
    Stampi i due interi separandoli da ",".
    Esempio con 3 cifre dopo la virgola:

    codice:
    void print(float f)
    {
        float temp=f-static_cast<int>(f);
        int pint,pf;
        pint=static_cast<int>(f);
        pf=static_cast<int>(temp*1000);
        cout << pint << "," << pf << endl;
    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Ma prima di tutto, che vuol dire per te "salvare" ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5

  6. #6
    Se li vuoi salvare usando le impostazioni di localizzazione italiane puoi fare semplicemente:
    codice:
    stream.imbue(std::locale("it-IT"));
    (dove stream è lo stream su cui stai scrivendo)
    se vuoi usare semplicemente le impostazioni locali (scelte dall'utente):
    codice:
    stream.imbue(std::locale(""));
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    Originariamente inviato da MItaly
    Se li vuoi salvare usando le impostazioni di localizzazione italiane puoi fare semplicemente:
    codice:
    stream.imbue(std::locale("it-IT"));
    Ovvero anche per il video, ad esempio

    codice:
    cout.imbue(std::locale("it-IT"));
    
    cout << 1.99 << endl;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.