Ciao, ho qualche problema con la funzione floor...
il codice mi pare corretto, numero è di tipo double ma la printf stampa un numero a caso.codice:void nomefunzione(double numero) { printf("%.0f\n", floor(numero)); }
Ciao, ho qualche problema con la funzione floor...
il codice mi pare corretto, numero è di tipo double ma la printf stampa un numero a caso.codice:void nomefunzione(double numero) { printf("%.0f\n", floor(numero)); }
Ho appena provato, a me funziona correttamente.. Come invochi la funzione e cose le passi?Originariamente inviato da Satsuki Kenbu
Ciao, ho qualche problema con la funzione floor...
il codice mi pare corretto, numero è di tipo double ma la printf stampa un numero a caso.codice:void nomefunzione(double numero) { printf("%.0f\n", floor(numero)); }
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
Per invocare la funzione
dove x è di tipo doublecodice:nomeFunzione(x)
Strano ... prova con
%.0lf
al posto di
%.0f
No MP tecnici (non rispondo nemmeno!), usa il forum.
Che compilatore stai usando? Su che Sistema Operativo?Originariamente inviato da Satsuki Kenbu
Per invocare la funzione
dove x è di tipo doublecodice:nomeFunzione(x)
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
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.
Puoi mostrare tutto il codice, main compreso?
No MP tecnici (non rispondo nemmeno!), usa il forum.
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)); }
Anche nella scanf devi usare %lf
scanf("%lf", &x);
No MP tecnici (non rispondo nemmeno!), usa il forum.
Adesso funziona, avevo già usato floor() in precedenza e non avevo mai avuto di questi problemi, cosa cambia esattamente da %f a %lf ?