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

Langage Pascal Discussion :

Extraire la partie décimale d'un nombre


Sujet :

Langage Pascal

  1. #1
    Futur Membre du Club
    Extraire la partie décimale d'un nombre
    Bonjour, je souhaite extraire la partie décimale d'un nombre; jusque là pas de problème, je fais un :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    dec := nb - Trunc(nb);


    Mais pour 5,45, j'aurais 0,45.
    Or, je veux 45 seulement, qu'il soit transformé en entier quoi.

    Existe-t-il un algorithme ou une fonction pour faire ceci svp ?

    Merci d'avance

  2. #2
    Expert confirmé
    Vou,

    Pas de solution miracle. Tu prends la partie décimale, et tu la multiplies par 100, en prenant le trunc de cette multiplication (100 n'est qu'un exemple, ça peut être autre chose, selon le nombre de chiffres désirés, bien entendu).
    Le mysticisme est une maladie qui crée des problèmes là où il n’en existe pas.

  3. #3
    Membre éclairé
    Bonsoir,

    Citation Envoyé par syntaxlb Voir le message
    Tu peux utiliser directement la fonction Frac :
    Code Pascal :Sélectionner tout -Visualiser dans une fenêtre à part
    partieDecimale = Frac(nombre); // Frac(123,456) = 0,456

    Citation Envoyé par syntaxlb Voir le message

    Mais pour 5,45, j'aurais 0,45.
    Or, je veux 45 seulement, qu'il soit transformé en entier quoi.
    Existe-t-il un algorithme ou une fonction pour faire ceci svp ?
    Tu multiplies la partie décimale par dix, jusqu'à ce que la partie décimale de la partie décimale soit nulle !

    --
    Wachter
    Code parrain certification Voltaire : NTMPH759

  4. #4
    Nouveau Candidat au Club
    Bonsoir, essaie ceci.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    MOD((NOMBRE*100),100 //) s'il ya 2 chiffres après la virgule.
    MOD((NOMBRE*1000),1000) // s'il ya 3 chiffres après la virgule.
    MOD((NOMBRE*10000),10000) // s'il ya 4 chiffres après la virgule. Ainsi de suite...

    Exemple: Pour 5,45 on a: MOD((5,45 *100),100)= 45

  5. #5
    Nouveau Candidat au Club
    Ya d'une solution miracle pour quoi pas:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    var x:String
    begin
           x:=FormatCurr('0',165.25);


    Resultat X=165


  6. #6
    Expert confirmé
    Bonjour,
    Citation Envoyé par progilic Voir le message
    var x:String
    begin
    x:=FormatCurr('0',165.25);

    Resultat X=165

    Apparemment tu n'as pas compris : c'est la partie décimale que syntaxlb veut extraire.
    Le mysticisme est une maladie qui crée des problèmes là où il n’en existe pas.

###raw>template_hook.ano_emploi###