PDA

Visualizza la versione completa : Comparazione di valori di tipo double


ascatem2
14-05-2006, 17:36
ovviamente non va con i simboli di < o >

grazie.

devil89
14-05-2006, 17:45
Come per il C++, anche il C accetta il confronto tra double.

Perchè non dovrebbe andare?
Funziona benissimo con gli operatori < e >.

Esempio:


#include <stdio.h>

int main() {
double a, b;
a = 3,55;
b = 4,23;
if (a<b)
printf ("Minore\n\n");
system("pause");
} /* main */

ascatem2
14-05-2006, 17:47
Originariamente inviato da devil89
Come per il C++, anche il C accetta il confronto tra double.

Perchè non dovrebbe andare?
Funziona benissimo con gli operatori < e >.

Esempio:


#include <stdio.h>

int main() {
double a, b;
a = 3,55;
b = 4,23;
if (a<b)
printf ("Minore\n\n");
system("pause");
} /* main */

#include <math.h>
#include <stdio.h>

int main(){
double x=0.1723542,y=0.1723541;
printf("%lf",(x<y)?(x):(y));
getch();
return 0;
}

mi da come aoutput 0.172354

oregon
14-05-2006, 17:55
Indica la precisione

printf("%0.7f", (x<y) ? (x) : (y));

ascatem2
14-05-2006, 17:56
Originariamente inviato da oregon
Indica la precisione

printf("%0.7f", (x<y) ? (x) : (y));

#include <stdio.h>

int main() {
double a, b;
a = 3,455555553;
b = 3,555555552;
if (a<b)
printf ("Minore\n\n");
system("pause");
} /* main */


non stampa minore

oregon
14-05-2006, 18:14
Devi scrivere correttamente i valori numerici reali. In C/C++ la virgola e' il punto


Originariamente inviato da ascatem2
#include <stdio.h>

int main() {
double a, b;
a = 3. 455555553;
b = 3. 555555552;
if (a<b)
printf ("Minore\n\n");
system("pause");
} /* main */


Ovviamente, a un certo punto, hai un limite determinato dalla "precisione" massima del double (15 cifre) ... ma questo non e' un problema ...

Loading