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

Discussione: [C] Floor

  1. #1

    [C] Floor

    Ciao, ho qualche problema con la funzione floor...

    codice:
    void nomefunzione(double numero) 
    {	 	
       printf("%.0f\n", floor(numero)); 
    }
    il codice mi pare corretto, numero è di tipo double ma la printf stampa un numero a caso.

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

    Re: [C] Floor

    Originariamente inviato da Satsuki Kenbu
    Ciao, ho qualche problema con la funzione floor...

    codice:
    void nomefunzione(double numero) 
    {	 	
       printf("%.0f\n", floor(numero)); 
    }
    il codice mi pare corretto, numero è di tipo double ma la printf stampa un numero a caso.
    Ho appena provato, a me funziona correttamente.. Come invochi la funzione e cose le passi?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  3. #3
    Per invocare la funzione

    codice:
    nomeFunzione(x)
    dove x è di tipo double

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Strano ... prova con

    %.0lf

    al posto di

    %.0f
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Satsuki Kenbu
    Per invocare la funzione

    codice:
    nomeFunzione(x)
    dove x è di tipo double
    Che compilatore stai usando? Su che Sistema Operativo?
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Provato con %.0lf, non cambia nulla inoltre il numero stampato dalla printf sembra essere lo stesso per qualsiasi valore passato alla funzione.

    Come IDE uso Visual Studio.Net, OS Windows 7 64 bit.

    Aggiungo che scrivendo printf("%.0lf\n", floor(10.5)); invece di printf("%.0lf\n", floor(number)); la printf stampa correttamente 10.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Puoi mostrare tutto il codice, main compreso?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Si tratta di un esercizio abbastanza banale preso da un libro...

    codice:
    #include "stdafx.h" 
    #include <math.h> 
    #include <stdio.h> 
    #include <stdlib.h>  
    
    void roundToInteger(double number);  
    
    int _tmain(int argc, _TCHAR* argv[]) 
    { 	
       double x;
      	
       printf("Inserisci un numero "); 	
       scanf("%f", &x); 	 	
    
       roundToInteger(x);
      	
       printf("\n"); 	
       system("pause"); 	 	
    
       return 0; 
    }  
    
    void roundToInteger(double number) 
    {	 	
       printf("%.0lf\n", floor(number)); 
    }

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Anche nella scanf devi usare %lf

    scanf("%lf", &x);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Adesso funziona, avevo già usato floor() in precedenza e non avevo mai avuto di questi problemi, cosa cambia esattamente da %f a %lf ?

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.