Dichiarazione di non responsabilità: mi rendo conto che questo non è il modo più semplice o addirittura migliore per gestirlo e lo chiedo in gran parte per un senso di curiosità, non perché sono convinto che questo sia il modo giusto. È un puzzle divertente con cui ho lottato per un giorno o giù di lì e non riesco a capire (e non riesco a trovare una buona risposta online!)
Sto lavorando a un progetto con il mio Arduino (ma questo potrebbe applicarsi a qualsiasi hardware) che coinvolge la temperatura di rilevamento. Ricevo il valore, lo analizzo e lo memorizzo in Celsius con un fattore di ridimensionamento di 1/100. per esempio. il valore 5.34C è memorizzato come uint16_t 534
. Pertanto, la stampa di questo valore è una questione di print (temp / 100 + "." + temp % 100)
. Quando lo uso per la logica nel mio programma ho bisogno solo di confrontarlo con un altro valore con un fattore di scala 1/100 e tutto funziona alla grande.
Facciamo finta che il mio Arduino o qualunque sistema non abbia supporto per i numeri in virgola mobile e ho solo numeri interi. Come posso convertire questo numero in Fahrenheit? Ho provato più volte a lavorare su carta e sembra giusto, ma ottengo sempre un risultato errato durante il test.