Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal > Langage
Langage Vos questions sur langage Pascal en général, ses évolutions, les technologies, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 07/12/2011, 16h06   #1
pleomax
Invité de passage
 
Inscription : décembre 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 3
Points : 0
Points : 0
Par défaut Résultat aléatoire avec frac sur des extended

Bonjour,

je cherche à obtenir la valeur de l'unité d'un nombre entier (par exemple 3 pour 213,0) déclaré Extended. Pour cela, j'utilise la fonction frac, puis je multiplie par 10. Les résultats sont justes uniquement pour les nombres qui se terminent par cinq et zéro, sinon il manque 1.
Avez vous une idée du problème ?
pleomax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 16h18   #2
droggo
Expert Confirmé
 
Inscription : août 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 3 433
Points : 3 808
Points : 3 808
Vie,

Une première question est : pourquoi un type Extended pour travailler avec des entiers ?

Sinon, donne des exemples de tes résultats, histoire de se faire une idée.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.
droggo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 16h37   #3
pleomax
Invité de passage
 
Inscription : décembre 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 3
Points : 0
Points : 0
Le type Extended car j'ai besoin de connaitre le reste exacte des divisions, ce que ne permet pas DIV.

des exemples : frac(73/10)*10 = 3 mais frac(5133/10)*10 = 2 !
de même frac(4201/10)*10 = 1 mais frac(7201/10)*10 = 0 !

Je doit faire une conversion pour pouvoir l'afficher dans un mémo : int64 := trunc(extended) mais je ne crois pas que le problème vienne de là.
pleomax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 17h58   #4
M.Dlb
Rédacteur/Modérateur

 
Avatar de M.Dlb
 
Inscription : avril 2002
Messages : 2 278
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2002
Messages : 2 278
Points : 3 434
Points : 3 434
Pourquoi ne pas utiliser un modulo 10, pour ne garder que les unités ? Je trouve l'utilisation de frac un peu compliquée là.
__________________
M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal
M.Dlb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 18h06   #5
droggo
Expert Confirmé
 
Inscription : août 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 3 433
Points : 3 808
Points : 3 808
Xie,
Citation:
Envoyé par pleomax Voir le message
Le type Extended car j'ai besoin de connaitre le reste exacte des divisions, ce que ne permet pas DIV
En Pascal, la division de 2 entiers donne un réel.

C'est pourquoi il existe aussi l'opérateur div qui permet de faire une division entière.

Un simple coup d’œil à un cours ou bouquin t'aurait appris ça (ou même un petit test, 2 lignes de programme à écrire !).

Et +1 sur wormful_sickfoot.

D'ailleurs , tu utilises trunc, tu sais donc de quoi il s'agit ... tu vois où ça conduit ?
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir.
droggo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 18h06   #6
pleomax
Invité de passage
 
Inscription : décembre 2011
Messages : 3
Détails du profil
Informations forums :
Inscription : décembre 2011
Messages : 3
Points : 0
Points : 0
mod accepte seulement des types entiers ? S'agit t-il d'une autre fonction ?
pleomax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/12/2011, 20h39   #7
mick605
Membre Expert
 
Homme
Étudiant
Inscription : juin 2009
Messages : 936
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 22
Localisation : France, Aveyron (Midi Pyrénées)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2009
Messages : 936
Points : 1 835
Points : 1 835
mod est, au même titre que div, un opérateur sur les entiers.

Div renvoie le quotient de la division entière, mod renvoie le reste de cette division.

Un petit tour sur le site ou sur google t'aurais donné la réponse ...
mick605 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h08.


 
 
 
 
Partenaires

Hébergement Web