Int(pow(10,2))

Inviato:
19 ott 2016, 0:38
da francicoma
Come mai
Int(pow(10,2))=99???
Re: Int(pow(10,2))

Inviato:
19 ott 2016, 0:46
da DarwinNE
Su Arduino?
Io Arduino non l'ho mai usato, comunque questo genere di cose di solito accade quando il risultato di un calcolo non è esattamente un intero ed il risultato viene troncato, e non arrotondato.
Per esempio, immagino che pow(10,2) sia un'elevazione a potenza con numeri a virgola mobile (o qualcosa di simile). Facciamo finta che invece che 100,0000 per una ragione o per un'altra legata a come i numeri sono rappresentati in memoria venga fuori qualcosa tipo 99,99999 con il numero di 9 opportuno.
Se si arrotonda all'intero più vicino 99,99999 si ottiene 100. Se invece si tronca la parte decimale, si ottiene 99.
Re: Int(pow(10,2))

Inviato:
19 ott 2016, 8:14
da EcoTan
In tal caso conviene aggiungere 0.5 prima di convertire da floating a intero.
Re: Int(pow(10,2))

Inviato:
19 ott 2016, 11:23
da lelerelele
il problema è gia stato affrontato qua
http://stackoverflow.com/questions/19126809/c-i-got-different-results-with-pow10-2-and-pow10-j-j-2devi sempre stare attento ad i formati numerico che passi alle funzioni, a volte possono fregare.....
saluti.