Ciao a tutti, il mio problema è che l'Arduino non fa i calcoli che gli scrivo di fare... sicuramente ho sbagliato qualcosa io... Ecco la riga di codice che mi da noie:
p = ((potenza / 100) * x) + potenza;
"p" è una variabile float mentre le variabili "x" e "potenza" sono integer. La variabile "potenza" assume valori compresi tra 0 e 100 mentre "x" assume valori tra 0 e 50.
Per qualsiasi valore che do a "x" "p" assume sempre il valore di "potenza". Come risolvere?
Grazie 1000 in anticipo!
Ovvero forzando il calcolo con le virgole. Se potenza è integer e 100 è integer il compilatore fa calcolo tra integer e quindi senza virgole. Devi forzare uno dei due operandi a float. Anche un cast va bene, ovvero scrivendo (float) davanti ad un operando (float)potenza/100
Magari, se p è un float, sarà meglio che dici al compilatore di fare i calcoli in float, altrimenti li fa come integer e converte solo alla fine con risultati ... quantomeno discutibili
Guglielmo
P.S. : Nid ed io abbiamo postato assieme ... io aggiungo al suo suggerimento :
p = (( (float)potenza / 100.0) * (float)x) + (float)potenza;