Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Numero di cifre dopo la virgola di un float

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Numero di cifre dopo la virgola di un float

Messaggioda Foto Utentecencia01 » 12 nov 2015, 12:12

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
Avatar utente
Foto Utentecencia01
10 4
Frequentatore
Frequentatore
 
Messaggi: 127
Iscritto il: 4 apr 2015, 16:54

0
voti

[2] Re: numero di cifre dopo la virgola di un float

Messaggioda Foto Utentepaofanello » 12 nov 2015, 16:12

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?
Piuttosto che chiedere qualcosa a me, chiedila a Mara Maionchi. E' più competente.
Avatar utente
Foto Utentepaofanello
2.280 8 13
Expert
Expert
 
Messaggi: 532
Iscritto il: 7 lug 2015, 21:01

0
voti

[3] Re: numero di cifre dopo la virgola di un float

Messaggioda Foto Utentecencia01 » 12 nov 2015, 16:26

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
Avatar utente
Foto Utentecencia01
10 4
Frequentatore
Frequentatore
 
Messaggi: 127
Iscritto il: 4 apr 2015, 16:54

1
voti

[4] Re: numero di cifre dopo la virgola di un float

Messaggioda Foto Utentepaofanello » 12 nov 2015, 16:35

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?
Piuttosto che chiedere qualcosa a me, chiedila a Mara Maionchi. E' più competente.
Avatar utente
Foto Utentepaofanello
2.280 8 13
Expert
Expert
 
Messaggi: 532
Iscritto il: 7 lug 2015, 21:01

1
voti

[5] Re: numero di cifre dopo la virgola di un float

Messaggioda Foto UtenteSjuanez » 12 nov 2015, 16:35

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_/
Più so e più mi accorgo di non sapere.

Qualsiasi cosa abbia scritto, tieni presente che sono ancora al mio primo rocchetto di stagno.
Avatar utente
Foto UtenteSjuanez
11,3k 6 8 13
G.Master EY
G.Master EY
 
Messaggi: 3479
Iscritto il: 18 mar 2015, 13:48

1
voti

[6] Re: numero di cifre dopo la virgola di un float

Messaggioda Foto Utentepaofanello » 12 nov 2015, 16:40

Guarda qui!
Piuttosto che chiedere qualcosa a me, chiedila a Mara Maionchi. E' più competente.
Avatar utente
Foto Utentepaofanello
2.280 8 13
Expert
Expert
 
Messaggi: 532
Iscritto il: 7 lug 2015, 21:01

0
voti

[7] Re: numero di cifre dopo la virgola di un float

Messaggioda Foto Utentecencia01 » 12 nov 2015, 16:41

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.
Avatar utente
Foto Utentecencia01
10 4
Frequentatore
Frequentatore
 
Messaggi: 127
Iscritto il: 4 apr 2015, 16:54

0
voti

[8] Re: numero di cifre dopo la virgola di un float

Messaggioda Foto UtenteSjuanez » 12 nov 2015, 16:42

paofanello ha scritto:Guarda qui!

ecco!
Più so e più mi accorgo di non sapere.

Qualsiasi cosa abbia scritto, tieni presente che sono ancora al mio primo rocchetto di stagno.
Avatar utente
Foto UtenteSjuanez
11,3k 6 8 13
G.Master EY
G.Master EY
 
Messaggi: 3479
Iscritto il: 18 mar 2015, 13:48

0
voti

[9] Re: numero di cifre dopo la virgola di un float

Messaggioda Foto Utentecencia01 » 12 nov 2015, 16:43

provo a farlo e ti faccio sapere

paofanello ha scritto:Guarda qui!
Avatar utente
Foto Utentecencia01
10 4
Frequentatore
Frequentatore
 
Messaggi: 127
Iscritto il: 4 apr 2015, 16:54

0
voti

[10] Re: numero di cifre dopo la virgola di un float

Messaggioda Foto Utentecencia01 » 12 nov 2015, 17:58

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);


:?: :!:
Avatar utente
Foto Utentecencia01
10 4
Frequentatore
Frequentatore
 
Messaggi: 127
Iscritto il: 4 apr 2015, 16:54

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Google [Bot] e 6 ospiti