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

Lazarus Pascal Discussion :

Fonction INT : résultat bizarre [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Par défaut Fonction INT : résultat bizarre
    Bonjour,
    sur un pgm, j'utilise la "fonction int" pour récupérer la partie entière d'une division.

    dalkey:= floattostr(int(latact/maxsize))
    + '_' + floattostr(int(lonact/maxsize));
    avec latact de type single, maxsize de type longint.

    maxsize est constante de 230;
    pour latact de -4, la fonction me renvoie -0 au lieu de -1
    pour latact de 231, la fonction me renvoie 1

    Avez-vous une idée ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pour obtenir le "bon" résultat, peut-être employer la fonction floor de l'unit math par exemple (Floor function returns the smallest near integer number).

    Cordialement. Gilles

  3. #3
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Lot (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2003
    Messages : 30
    Par défaut
    Ca marche.

    J'ai fait un 1 pour garder une coherence dans mon petit programme.

    Merci Selzig.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    C'est curieux en effet cette erreur dans int. Mais je n'arrive pas à suivre la piste... On va aller faire un petit tour du côté du forum Free Pascal http://www.developpez.net/forums/d99...s/#post5577260...

    Cordialement. Gilles
    Dernière modification par Invité ; 08/11/2010 à 11h55.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 63
    Par défaut
    Ce n'est pas une erreur, la fonction int, n'est pas la fonction partie entière. Elle renvoie en principe le nombre sans sa partie décimale. Donc int(-1.5) doit donner normalement -1, alors que la partie entière de -1.5 c'est -2.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Oui, oui...

    "On" a compris... Mais avouez que sa description dans le wiki correspond exactement à celle d'une partie entière... outre le fait que le terme employé ajoute à la confusion... Enfin, c'est surtout sa description qui prête à cette dernière...

    Je n'ai pas l'habitude d'employer int (mais floor qui appartient à l'unité math)... Mais je n'avais jamais remarqué que int avait cette particularité... Et franchement, si je cherchais cette fonction, j'aurais saisi "int" dans un moteur de recherche ou "delphi partie entière" dans ce cher Google...

    Site 1 proposé : http://info.sio2.be/delphi/3/7.php... : "Fonctions mathématiques : int(valeur) Renvoie la partie entière d'un nombre réel. "

    Site 2 proposé : http://mgc99.free.fr/Delphi1.html : "Routines arithmétiques : Int Renvoie la partie entière de l'argument."

    Je continue ? Il y a confusion et elle est normale compte tenu de la terminologie employée... et il faut utiliser un réel négatif pour se rendre compte du "problème"...

    Chez les anglo-saxons... C'est un peu plus précis parfois quand on trouve une note : "The Trunc function does the same, but returns the integer in an Integer value." Mais la confusion est également importante... A moins que le terme mathématique "partie" entière ait une autre traduction que "integer part". Je demanderai demain à mon collègue d'Anglais.

    Cordialement. Gilles
    Dernière modification par Invité ; 08/11/2010 à 19h42.

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

Discussions similaires

  1. Résultat bizarre d'une fonction numérique simple
    Par feynman dans le forum Fortran
    Réponses: 9
    Dernier message: 19/11/2007, 23h07
  2. Réponses: 5
    Dernier message: 12/02/2006, 23h00
  3. Comment avoir une fonction à deux résultats ?
    Par xenos dans le forum Langage
    Réponses: 9
    Dernier message: 02/10/2005, 11h32
  4. remplir une table en fonction des résultats
    Par Psychomantis dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 19/10/2004, 13h22
  5. [Débutant][Math] float int arondi bizarre
    Par yolepro dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 27/04/2004, 11h01

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