|
|||||||
|
|
|
![]() |
|
|
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: 2782
|
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: 21:51.



















