Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    [c++] In una divisione avrei bisogno di avere anche i risultanti dopo la virgola...

    Mentre per adesso mi arrotonda all'intero sempre 0...

    codice:
    int rapportorars=ritardoultimo/ritardomassimo;
    dovrei avere invece risultati del tipo:

    0,70

    0,03

    0,52

    ecc...

    come posso visualizzare anche i valori dopo la virgola?

    Grazie


  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Se utilizzi un

    int

    e' ovvio che non hai valori dopo la virgola ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    ho provato anche con...

    codice:
    float rapportorars=ritardoultimo/ritardomassimo;
    ma non funzia...

  4. #4
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    Re: ho provato anche con...

    Originariamente inviato da freetom
    codice:
    float rapportorars=ritardoultimo/(float)ritardomassimo;
    ma non funzia...
    risposta nel quote
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  5. #5
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    grazie!



    e se volessi ridurre il tutto solo alle prime 3 cifre decimali?

    adesso mi da valori lunghi anche di 7 elementi...

    Grazie comunque!


  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: ho provato anche con...

    Originariamente inviato da freetom
    codice:
    float rapportorars=ritardoultimo/ritardomassimo;
    ma non funzia...
    ritardoultimo e ritardomassimo sono due interi, giusto? L'operatore / guarda il tipo degli operandi, vede che sono due interi e fa la divisione tra interi, poco importa se il risultato lo memorizzi in un float! Dichiara come float una delle due variabili (o tutte due, non cambia nulla) oppure fai un cast
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: grazie!

    Originariamente inviato da freetom


    e se volessi ridurre il tutto solo alle prime 3 cifre decimali?

    adesso mi da valori lunghi anche di 7 elementi...

    Grazie comunque!

    Basta che quando visualizzi il risultato indichi alla printf che vuoi tre cifre dopo la virgola:
    codice:
    #include <stdio.h>
    
    int main() {
        float a = 24234;
        float b = 13123;
        float c = a / b;
        
        printf("Risultato = %f\n", c);
        printf("Risultato = %.3f\n", c);
        
        return 0;
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  8. #8
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    Re: Re: grazie!

    Originariamente inviato da Alex'87
    Basta che quando visualizzi il risultato indichi alla printf che vuoi tre cifre dopo la virgola:
    codice:
    #include <stdio.h>
    
    int main() {
        float a = 24234;
        float b = 13123;
        float c = a / b;
        
        printf("Risultato = %f\n", c);
        printf("Risultato = %.3f\n", c);
        
        return 0;
    }
    sta facendo c++ deve usare la funzione setprecision
    codice:
    #include <iomanip>
    #include <iostream>
    
    using namespace std;
    
    int main(){
         ...
         cout<<setprecision(3)<<variabile<<endl;
         return 0;
    }
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480

    Re: ho provato anche con...

    Originariamente inviato da freetom
    codice:
    float rapportorars=ritardoultimo/ritardomassimo;
    ma non funzia...
    Siamo proprio agli albori del C/C++ ...

    float rapportorars = (float)ritardoultimo/ritardomassimo;

    (Che senso ha programmare senza imparare almeno le basi?)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725

    Re: Re: grazie!

    Originariamente inviato da Alex'87
    Basta che quando visualizzi il risultato indichi alla printf che vuoi tre cifre dopo la virgola:
    codice:
    #include <stdio.h>
    
    int main() {
        float a = 24234;
        float b = 13123;
        float c = a / b;
        
        printf("Risultato = %f\n", c);
        printf("Risultato = %.3f\n", c);
        
        return 0;
    }

    Se non lo volessi stampare a video ma salvare in una variabile risultatoa3cifre per poi poter salvare quest'ultima in un file come potrei fare?

    ho provato così...
    codice:
    rapportorars = ("%.3f", rapportorars);
    ma non funzia...


    Grazie1000


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 © 2025 vBulletin Solutions, Inc. All rights reserved.