18Fermer20
bearbecueLe 30/11/2013 à 01:55
./4>
float voltage = (float)(conv * REF_VOLTAGE) / (float)CONV_MAX;
Cette fois, on va diviser un plus grand nombre, et les erreurs d’arrondis seront minimales.


ach mais nan ! /o\
ca serait vrai pour des entiers, ou justement pour des virgules fixes, mais absolument pas pour des floats, sauf pour des valeurs extremes, qui passeraient en denormal apres la division, donc auraient des bits de mantisse tronques.
mais l'inverse est vrai aussi: pour les tres grands nombres, faire la multiplication avant peut tout aussi bien provoquer une saturation en +/-inf.
Vous me suivez? Pour retrouver un nombre dans le bon format, il faut donc multiplier par D après la division.

heu. bah nan. surtout pas. La oui il faut multiplier avant de diviser :>
sinon il se passe ce qu'il disait qu'il se passait pour les floats mais qu'en fait il se passe pas embarrassed


enfin sinon c'est plutot pas trop mal explique ^^