Mi chiedevo è possibile dividere un variabile float? ho esigenza di variare attraverso il display ed encoder prima la parte antecedente la virgola che può essere sia negativa che positiva. sotto un'altra voce la parte "decimale" questa sarà solo positiva per un valore massimo di 100. ovviamente i due parametri appartengono ad una unica variabile che sarà necessariamente una float perché sia positiva che negativa e con la virgola. mi chiedevo se ci fosse un metodo per ricostruire una float partendo ad esempio da due int.
int a
int b
float c = a + b
l'esempio lascia abbastanza a desiderare però è come se quel + dovesse trasformarsi in una virgola. Spero aver reso l'idea
ah...scusa avevo letto male il tuo post...pensavo che la parte dopo la virgola poteva essere negativa.
...però non ho capito a cosa ti serve il float...o meglio...non puoi semplicemente avere due variabili una per i gradi ed una per i primi? o la devi "passare" a qualche cosa che accetta solo float?
ORSO2001:
ah...scusa avevo letto male il tuo post...pensavo che la parte dopo la virgola poteva essere negativa.
...però non ho capito a cosa ti serve il float...o meglio...non puoi semplicemente avere due variabili una per i gradi ed una per i primi? o la devi "passare" a qualche cosa che accetta solo float?
la seconda ho bisogno della float ma editare un valore positivo o negativo che va da -180.00 a +180.00, e +90.00 a -90.00 diventa un po' complicato e poco manegevole, per cui avevo pensato di dividere la float in due int e poi ricomporla ma francamente non ho idea ne se si possa fare e ne come fare.
anche se il segno meno della int b lo vorrei gestire in maniera diversa perché solo la int a ha bisogno del segno la int b no ma nell'operazione se int b non ha lo stesso segno di a sballa tutto. devo provare
ciao...gestire la tua soluzione è "semplice"...:
if a < 0 allora float = a-(b/100.00)
if a >= 0 allora float = a+(b/100.00)
ma questa comporta cast a float e arrotondamenti vari
adesso non so come vuoi gestire la selezione tra parte a sx e a dx della virgola però supponendo un pulsante che se premuto fa i decimali se non premuto fa le unità:
if pulsante selezione premuto
if pulsante + premuto float+= 0.1 o 0.01
if pulsante - premuto float -= 0.1 o 0.01
if pulsante selezione non premuto
if pulsante + premuto float+= 1
if pulsante - premuto float -= 1
potresti gestire la verifica della pressione dei pulsanti + e - con millis in modo da avere inc e dec di 1-10-100 oppure sempre di 1 ma più veloci....