Archive 07/10/2020.

TP 7, bug sujet dans printf(” %u.%u “)

michel_billaud

Bonjour,

Le TP7 propose la façon suivante d’afficher la température

printf("temp = %u.%u\n", (temp / 100), (temp % 100));

Problème : l’affichage est incorrect, si temp%100 est compris entre 0 et 9 (une chance sur 10 :-))

Exemple, avec 3201, il s’afficherait

temp = 32.1

au lieu de 32.01.
Correction à apporter : spécification de format %02u, pour forcer l’affichage de la partie décimale sur 2 chiffres, avec 0 non significatif en partie haute :

printf("temp = %u.%02u\n", (temp/100), (temp %100));

En espérant que ça aide …

Boudaa

Vous avez raison. Par conséquent, 3201 et 3210 auront la même température 32.1 !!!

aabadie2

Bonjour,

Et merci pour cette remarque, vous avez tout à fait raison ! C’est un bug que j’ai d’ailleurs corrigé pour d’autre capteurs dans RIOT.
Nous allons mettre à jour les exemples.