|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
|
Problemi con formati numerici
Salve a tutti ho una funzione che genera una variabile uniforme tra a e b:
Codice:
double uniform(double a, double b, long *seed) { double u; printf("Parametri: %lf, %lf\n", a, b); *seed = rnd32 (*seed); u = (*seed) * RATIO; u = a + u * (b-a); printf("Ritorno: %lf\n", u); return (u); } Codice:
double prova=uniform(0.0, 3.0, &seme2); printf("Prova: %lf, vediamo: %lf\n", uniform(0.0, 3.0, &seme2), prova); Codice:
Parametri: 0.000000, 3.000000 Ritorno: 2.111209 Prova: -1144392789.000000, vediamo: 193124239.945278 Parametri: 0.000000, 3.000000 Ritorno: 2.087512 Parametri: 0.000000, 3.000000 Ritorno: 2.806405 Prova: 992633187.000000, vediamo: 193124239.945278 Parametri: 0.000000, 3.000000 Ritorno: 1.252941 Parametri: 0.000000, 3.000000 Ritorno: 1.179957 Grazie a tutti, ciao ciao. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Prova nella printf ad usare %f o %g al posto di %lf
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2004
Città: Palermo
Messaggi: 1079
|
Ho trovato l'errore, la funzione per la generazione di una variabile uniforme era definita in un file esterno ed avevo dimenticato di inserire:
Codice:
extern double uniform(double a, double b, long *seed); Ciao ciao. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:54.