Bonjour à tous!
Je viens vous voir car je rencontre un problème ; je souhaite convertir une chaîne de caractère en un nombre à virgule (float, double, etc). voilà ce que je fais :
Mon problème, c'est que je me retrouve avec dans mon float : 5.7800002 et dans mon double : 5.7800000000000002
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 char * pEnd; char c[] = "5.78"; float flt = strtod(c, &pEnd); double db = strtod(c, &pEnd);
Pourquoi n'ai je pas les valeurs exactes, et d'où vient ce "2"...?
J'ai essayé avec un char* plutôt qu'avec un char[], et la fonction atoi plutôt que strtod, et toujours le même problème...
Aidez moi s'il vous plait! :sweat:
Merci!
Partager