Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: [c] printf

  1. #1
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841

    [c] printf

    ciao,
    facendo printf("%f",x); mi restituisce 0.652344, solo che a me serve un numero piu lungo... come faccio a far visualizzare piu cifre dopo la virgola??

    grazie mille

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Le cifre significative dipendono dalla precisione ... avrai usato un float ... prova con un double.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Originariamente inviato da oregon
    Le cifre significative dipendono dalla precisione ... avrai usato un float ... prova con un double.
    l'ho definita così
    #define X0 -0.101563
    come faccio a metterla come double?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    const double X0 = -0.101563;

    ma questa e' un'altra cosa ... le cifre sono quelle ... come lo vuoi visualizzare?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Originariamente inviato da oregon
    const double X0 = -0.101563;

    ma questa e' un'altra cosa ... le cifre sono quelle ... come lo vuoi visualizzare?
    dunque... io devo dichiarare, utilizzare nei calcoli e poi visualizzare un numero con virgola il piu lungo possibile...

    non c'è qualcosa di ancora piu grande di "double"?? ad esempio "long double" va bene?

    codice:
    const double Y1 = 0.652344;
    const double X0 = -0.101563;
    const double X1 = -0.097656;
    const double Y0 = 0.648438;
    
       printf("zoom consigliati:\n\n");
       printf("(Y)\n");
       printf("1: %f\n",(double)Y1);
       printf("2: %f\n",(double)(((Y1+Y0)/2)+Y1)/2 );   
       printf("3: %f\n",(double)(Y1+Y0)/2);
       printf("4: %f\n",(double)(((Y1+Y0)/2)+Y0)/2 );      
       printf("5: %f\n",(double)Y0);   
       
       printf("\n(X)\n");
       printf("1: %f\n",(double)X0);
       printf("2: %f\n",(double)(((X0+X1)/2)+X0)/2 );   
       printf("3: %f\n",(double)(X0+X1)/2);
       printf("4: %f\n",(double)(((X0+X1)/2)+X1)/2 );      
       printf("5: %f\n",(double)X1);

  6. #6
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    codice:
    const double Y1 = 0.652344654654645;
    const double X0 = -0.1015636546354645;
    const double X1 = -0.0976566546565;
    const double Y0 = 0.648438654645645;
    
       printf("zoom consigliati:\n\n");
       printf("(Y)\n");
       printf("1: %f\n",(double)Y1);
       printf("2: %f\n",(double)(((Y1+Y0)/2)+Y1)/2 );   
       printf("3: %f\n",(double)(Y1+Y0)/2);
       printf("4: %f\n",(double)(((Y1+Y0)/2)+Y0)/2 );      
       printf("5: %f\n",(double)Y0);   
       
       printf("\n(X)\n");
       printf("1: %f\n",(double)X0);
       printf("2: %f\n",(double)(((X0+X1)/2)+X0)/2 );   
       printf("3: %f\n",(double)(X0+X1)/2);
       printf("4: %f\n",(double)(((X0+X1)/2)+X1)/2 );      
       printf("5: %f\n",(double)X1);
    l'output è questo, non me lo approfondisce

    codice:
    (Y)
    1: 0.652345
    2: 0.651368
    3: 0.650392
    4: 0.649415
    5: 0.648439
    
    (X)
    1: -0.101564
    2: -0.100587
    3: -0.099610
    4: -0.098633
    5: -0.097657

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Tutti i cast a (double) nelle printf non servono a nulla ...

    Non c'e' il long double ...

    Ancora NON ho capito cosa vuoi ... se i valori che usi hanno poche cifre dopo la virgola, a cosa ti serve altro ?

    Se utilizzi

    const double Y1 = 0.652344;

    a cosa ti serve scrivere

    0.6523440000000


    ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Originariamente inviato da oregon
    Tutti i cast a (double) nelle printf non servono a nulla ...

    Non c'e' il long double ...

    Ancora NON ho capito cosa vuoi ... se i valori che usi hanno poche cifre dopo la virgola, a cosa ti serve altro ?

    Se utilizzi

    const double Y1 = 0.652344;

    a cosa ti serve scrivere

    0.6523440000000


    ?
    mi serve perche progressivamente vado ad utilizzare valori con sempre piu numeri dopo la virgola...

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

    "%.16f\n"
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di mamo139
    Registrato dal
    May 2005
    residenza
    Londra
    Messaggi
    841
    Originariamente inviato da oregon
    Utilizza questo formato

    "%.16f\n"
    grazie mille...
    quindi i dati erano salvati e processati, l'unica cosa è che non potevo vederli giusto??

    fino a quante cifre arrivano i double?

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.