Au-delà des réels, l'aventure continue...

Magazine
Marque
GNU/Linux Magazine
Numéro
113
Mois de parution
février 2009


Résumé
N'avez-vous jamais constater d'aberration dans vos calculs sur les réels ? Ne vous êtes-vous jamais surpris à réaliser correctement des opérations qui étaient pourtant fausses dans vos programmes, à rechercher des heures durant pourquoi vous aviez une erreur d'arrondi ? Je vous propose dans cet article de partir à l'aventure, au cœur de votre ordinateur, pour comprendre comment sont traités les réels en machine.

Les réels sont partout ! En effet, les nombres à virgule sont omniprésents en mathématique. On pourrait citer le célèbre π (pi) qui vaut 3.14159... mais, avec un ordinateur, un simple décimal tel que 0.1 peut entraîner des erreurs qui peuvent être, suivant le contexte, désastreuses. Pensez à un missile chasseur de missile qui effectuerait une erreur de précision de l'ordre de 0.34s. Il passerait loin du missile qu'il est censé intercepter. Ce scénario s'est produit en 1991 avec un missile Patriote lors de la Guerre du Golfe [1]. Il est indispensable de comprendre le codage des réels en machine pour en tenir compte lors d'un développement et ne pas faire ainsi des erreurs qui pourraient être parfois simplement évitées.

Dans cet article, je m'attacherai à résoudre pas à pas le problème suivant, énoncé en PHP :

<?php

  print (int) ((0.7+0.1)*10);

?>

Nous demandons l'affichage de la partie entière du calcul (0.7+0.1)*10, soit 0.8*10, c'est-à-dire 8. Si vous...

Cet article est réservé aux abonnés. Il vous reste 94% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez chaque semaine un nouvel article premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Par le(s) même(s) auteur(s)

Édito

Magazine
Marque
GNU/Linux Magazine
Numéro
254
Mois de parution
décembre 2021
Résumé

Lorsque l’on vend un logiciel, il faut satisfaire le client pour espérer en acquérir de nouveaux. Ceci est d’autant plus vrai lorsque le produit en question est vendu sous la forme d’un service. Un de nos lecteurs m’a fait remonter une information croustillante : disposant d’un site internet géré et alimenté en actualités par un prestataire, il a demandé à connaître le nombre de connexions clients ainsi que le nombre de vues par page, taux de rebond, etc.

Écriture d’une API REST en Python : le framework Flask RESTful

Magazine
Marque
GNU/Linux Magazine
Numéro
254
Mois de parution
décembre 2021
Spécialité(s)
Résumé

Les API REST sont très pratiques pour communiquer simplement avec un serveur. Lorsque l’on veut développer une telle API en Python, la première question que l’on doit se poser est de savoir quel framework employer. Dans cet article, nous allons découvrir l’un d’entre eux : le framework Flask RESTful.

Édito

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
117
Mois de parution
novembre 2021
Résumé

Les petits bugs d’affichage, ces petites erreurs qui n’entravent en rien le fonctionnement d’un programme et peuvent paraître complètement anodines, ruinent l’image d’un produit ou d’une marque en quelques secondes. Il paraît invraisemblable qu’il n’y ait pas au moins une personne pour vérifier ces « détails » : inutile d’embaucher un développeur hyper-qualifié, un simple individu sachant lire peut remonter ces erreurs.

Les derniers articles Premiums

Les derniers articles Premium

Du graphisme dans un terminal ? Oui, avec sixel

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

On le voit de plus en plus, les outils en ligne de commandes s'étoffent peu à peu d'éléments graphiques sous la forme d'émojis UTF8. Plus qu'une simple décoration, cette pointe de « graphisme » dans un monde de texte apporte réellement un plus en termes d'expérience utilisateur et véhicule, de façon condensée, des informations utiles. Pour autant, cette façon de sortir du cadre purement textuel d'un terminal n'est en rien une nouveauté. Pour preuve, fin des années 80 DEC introduisait le VT340 supportant des graphismes en couleurs, et cette compatibilité existe toujours...

Game & Watch : utilisons judicieusement la mémoire

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Au terme de l'article précédent [1] concernant la transformation de la console Nintendo Game & Watch en plateforme de développement, nous nous sommes heurtés à un problème : les 128 Ko de flash intégrés au microcontrôleur STM32 sont une ressource précieuse, car en quantité réduite. Mais heureusement pour nous, le STM32H7B0 dispose d'une mémoire vive de taille conséquente (~ 1,2 Mo) et se trouve être connecté à une flash externe QSPI offrant autant d'espace. Pour pouvoir développer des codes plus étoffés, nous devons apprendre à utiliser ces deux ressources.

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous