Pagina 1 di 3

Numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 12:12
da cencia01
Ciao, mi è capitato di fare un programma che utilizzasse variabili float e mi sono accorto che ho a che fare con numeri con 4 cifre dopo la virgola. I calcoli che faccio non mi vengono perché mi si troncano sulla seconda cifra decimale. Vorrei considerare più cifre decimale possibili.
Ecco il codice:

Codice: Seleziona tutto
float temperatura;
temperatura = media / TERMISTORNOMINAL;     // (R/Ro)
temperatura = log(temperatura); // ln(R/Ro)
temperatura /= BCOEFFICIENT;                   // 1/B * ln(R/Ro)
temperatura += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To)
temperatura = 1.0 / temperatura;                 // Invert the value
temperatura -= 273.15;                         // Convert it to Celsius


Nella terza operazione (/=) temperatura mi si tronca su 0.00 invece di proseguire su 0.00017. Come posso fare?
Grazie

Re: numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 16:12
da paofanello
Non sono ferrato sull'argomento, ma a me è capitato una volta di sbagliare e inserire in una espressione di numeri reali un numero intero, ciò mi dava il tuo stesso identico problema, io vedo solo la dichiarazione di una variabile, sei sicuro che TUTTI gli altri parametri in gioco siano float?

Re: numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 16:26
da cencia01
in questo caso ho solo la variabile temperatura...
dove mi sono accorto che fa solo due cifre decimali? Con il Monitor Seriale: andando a stampare la variabile temperatura ho notato che non ci sono tutte le cifre decimali. non mi è mai successo con i PIC....
#-o

Re: numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 16:35
da paofanello
Scusa se insisto, non penso tu sia incapace ma voglio solo essere sicuro: e le costanti come le hai dichiarate? Quel BCOEFFICIENT sei sicuro sia float?

Re: numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 16:35
da Sjuanez
Ciao, se tutte le altre variabili o meglio costanti sono Float, prova a fare un debug di ogni calcolo con un print e vedi dove si perde.

O_/ O_/ O_/

Re: numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 16:40
da paofanello
Guarda qui!

Re: numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 16:41
da cencia01
si perde qua:
cencia01 ha scritto:temperatura /= BCOEFFICIENT; // 1/B * ln(R/Ro)


Nella terza operazione (/=) temperatura mi si tronca su 0.00 invece di proseguire su 0.00017.


temperatura resta un float ma a me serve che si possano vedere più cifre decimali.

Re: numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 16:42
da Sjuanez
paofanello ha scritto:Guarda qui!

ecco!

Re: numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 16:43
da cencia01
provo a farlo e ti faccio sapere

paofanello ha scritto:Guarda qui!

Re: numero di cifre dopo la virgola di un float

MessaggioInviato: 12 nov 2015, 17:58
da cencia01
perfetto il numero di cifre l'ho risolto, in parte....

ora mi da INF sul monitor seriale con le seguenti righe di codice:

Codice: Seleziona tutto
temperature2 = log(5960/9241);
Serial.print(temperature2,4);


:?: :!: