CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C] Petite question sur float, AIDE SVP

Thm01
Thm01
Niveau 9
20 janvier 2010 à 22:44:39

:salut: Tout le monde !

J'ai une petite question, je suis un amateur au niveau de la programmation, et j'aimerais savoir pourquoi le programme ci dessous m'affiche : 0.100000000149

Fonction principale :

int mail ()
{

float x = 0.1;

printf("%11.f\n",x);

return EXIT_SUCCESS;
}

Voila le programme, printf("%11.f\n",x); c'est pour afficher la valeur de la variable x avec une précision de 11 chiffres après la virgule.

donc en gros pourquoi float 0.1 est égale à 0.100000000149 (avec une précision de 11 chiffes après la virgule)???

Si quelqu'un peut m'aider ce serait sympas :p

Merci d'avance ! :-)

guyver2
guyver2
Niveau 10
20 janvier 2010 à 22:52:20

cela est du au manque de précision des float en C, si tu as besoin de plus de nombre apres la virgule change tout tes float en double.

Explication plus complète en anglais
http://en.wikipedia.org/wiki/Floating_point#Accuracy_problems
et moins complète en francais
http://fr.wikipedia.org/wiki/Virgule_flottante#Pr.C3.A9cautions_d.27emploi

Thm01
Thm01
Niveau 9
20 janvier 2010 à 23:20:55

ah très bien! C'est cool de m'avoir répondu :-d

un grand merci à toi guyver2 :ok: !!!!!

dnob700
dnob700
Niveau 10
20 janvier 2010 à 23:51:30

Mais le problème existe aussi avec les doubles. Il faudra juste afficher plus de décimale pour s'en rendre compte (et il y a aussi, avec les doubles comme les float, quelques réels qui sont bien stockés, comme 0.5).

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment