IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

les types réels, besoin d'explications


Sujet :

Langages de programmation

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut les types réels, besoin d'explications
    Bonjour,

    J'apprends le Pascal et Delphi. Je ne comprends pas les types réels, à part le type Currency que j'ai à peu près compris.
    Voici le tableau des types réels que j'ai pris ici.


    Mais j'apprends avec ce cours de Frédéric Beaulieu.
    Je prends par exemple le type Real48 que je ne comprends pas: son intervalle est 2,9*10^-39 à 1,7*10^38, son nombre de chiffres significatifs est 11-12, sa taille est 6 octets.
    Quel est le nombre de chiffres après la virgule ?
    Pourquoi y-a-t-il 2 nombres de chiffres significatifs et pas un seul ?

    Je vous remercie d'avance.

  2. #2
    Expert confirmé

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Points : 4 173
    Points
    4 173
    Par défaut
    Citation Envoyé par Ummite Voir le message
    Bonjour,

    J'apprends le Pascal et Delphi. Je ne comprends pas les types réels, à part le type Currency que j'ai à peu près compris.
    Voici le tableau des types réels que j'ai pris ici.


    Mais j'apprends avec ce cours de Frédéric Beaulieu.
    Je prends par exemple le type Real48 que je ne comprends pas: son intervalle est 2,9*10^-39 à 1,7*10^38, son nombre de chiffres significatifs est 11-12, sa taille est 6 octets.
    Quel est le nombre de chiffres après la virgule ?
    Pourquoi y-a-t-il 2 nombres de chiffres significatifs et pas un seul ?

    Je vous remercie d'avance.
    Ce qu'il faut comprendre, c'est qu'en informatique (et en particulier en Delphi), les nombres "réels" (selon la définition mathématique du terme) n'existent pas.

    A la place, tu as deux types de nombres à virgules :
    - Les nombres en virgules fixes : C'est le cas du type Currency. Le nombre est en réalité un entier et on décide par convention qu'on place une virgule à la position "x". Pour un type monétaire par exemple, ça revient à dire qu'on mémorise la valeur en centimes dans un entier, puis qu'il faut rediviser cette valeur par 100 (ou par 10000 pour le currency) pour avoir la valeur réelle.
    Les nombres en virgules fixes on une précision constante, connue par avance. Donc on peut dire que leur valeur va de x à y en énumérant les valeurs entres.
    - Les nombres en virgules flottantes : Pour résumé, dans ces derniers on utilise la notation scientifique. On prendre une valeur numérique avec une partie entière et une partie décimale, puis on applique un exposant. Dans la pratique c'est plus compliqué. De plus, du fait de l'encodage utilisé dans quasiment tous les cas, un nombre en virgule flottante est une valeur approchée de la valeur stockée. Cette valeur sera plus où moins précise selon le nombre de bits utilisés pour l'encoder.

    Ainsi, pour un nombre en virgules flottante retient simplement deux choses : C'est toujours une valeur approchée (il ne faut jamais tester l'égalité stricte de deux flottants). La notion de chiffres significatifs n'a pas vraiment de sens, tu as toujours un arrondi qui dépend de la valeur à représenter.
    Plus le nombre en virgule flottante est large (en nombre de bits) et plus il sera précis.

    Dans la pratique dans Delphi :
    - Tu dois manipuler des monétaires : utilise le type Currency, ou travaille avec des entiers.
    - Tu dois travailler avec des flottants : utilise le type le plus large, qui correspond le mieux au processeur de la machine. En un mot : Double.
    Les types Extended et Real48 n'existent pas dans la norme IEEE-754. Donc le processeur ne doit pas savoir les gérer correctement.
    Le type Comp est en réalité un entier (int64).
    Le type Single est très imprécis, tu ne disposes que de 23 bits pour la valeur numérique.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup pour ces explications, je comprends maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'explication sur les imports
    Par Chicard dans le forum Langage
    Réponses: 13
    Dernier message: 14/08/2007, 16h24
  2. Explication sur les types primitifs
    Par habasque dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2007, 05h56
  3. [Tableaux] Besoin d'explications sur les tableaux imbriqués
    Par gateaubasque dans le forum Langage
    Réponses: 5
    Dernier message: 23/03/2007, 09h12
  4. [NTFS]explication sur les type de droits
    Par arnolem dans le forum Sécurité
    Réponses: 6
    Dernier message: 19/04/2006, 12h52
  5. Besoin d'explications sur les charset
    Par EGPMS dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 03/02/2006, 15h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo