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

Langage Perl Discussion :

[débutant] Problèmes d'arrondis et de mémoire


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut [débutant] Problèmes d'arrondis et de mémoire
    Bonjour.

    J'ai écrit un script (sous windowsNT) qui me pose quelques problèmes.

    J'ai un nombre décimal que je souhaite arrondir au mieux en utilisant la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Ix=("%.0f" , ($xgrid/$Dx));
    mais il semblerait qu'en "interne", le script ne prenne pas la valeur arrondie pour la suite des calculs (ce qui m'arrangerait) mais la valeur réelle de $Ix.
    Comment faire pour que l'"interne" utilise la valeur arrondie?
    Faudrait-il que je me force à utiliser les commandes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ceil (..)
    floor (..)
    qui me permettraient d'arrondir ma variable selon la valeur de la décimale?

    Autre problème : l'exécution de mon script affiche ceci sous l'invite de commande Dos :
    Comment arranger cela?

    Merci d'avance pour vos réponses.

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par etudiant en hydro
    Bonjour.

    J'ai écrit un script (sous windowsNT) qui me pose quelques problèmes.

    J'ai un nombre décimal que je souhaite arrondir au mieux en utilisant la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Ix=("%.0f" , ($xgrid/$Dx));
    Je suppose qu'il s'agit d'une erreur de copier-coller et que tu n'as pas vraiment oublié sprintf() ?

    Citation Envoyé par etudiant en hydro
    Autre problème : l'exécution de mon script affiche ceci sous l'invite de commande Dos :
    Comment arranger cela?

    Merci d'avance pour vos réponses.
    En corrigeant le script (il est peu probable que tu ais vraiment un out of memory justifiable, plus probablement une erreur dans une boucle quelconque). Mais sans le code on ne peut pas vraiment t'aider.

    --
    Jedaï

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 22
    Par défaut
    Bonjour et merci d'avoir répondu.

    En fait, le problème
    s'est arrangé.

    Par contre, pour ce qui est de l'arrondi au nombre entier le plus proche, il est vrai que mes propos n'ont pas été très clairs, surtout sans script.
    Donc voilà, je savais que la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf ("%.0f", $machin);
    affichait l'entier le plus proche du scalaire $machin
    mais ce que je voulais, c'est faire en sorte que cet arrondi soit pris en compte pour des calculs ultérieurs ayant lieu dans ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $machin=(2256.16476/5.64646);
    print "$machin"."\n";
    printf ("%.0f", $machin);
     
     
    $bidule = ($machin + 2);
     
    Si $bidule est un entier, faire : truc
    sinon : ça plante!
    Je souhaite donc faire en sorte que $machin soit arrondi à l'entier le plus proche.
    Faut-il que j'utilise les fonctions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ceil (..)
    floor (..)
    pour arrondir $machin à l'entier le plus proche en fonction de la valeur de ses décimales?

    P.S. j'ai conscience de la mauvaise écriture de mon expression conditonnelle.

Discussions similaires

  1. Débutant, problème tableaux trop grands, mémoire
    Par Sabrina0021 dans le forum C
    Réponses: 2
    Dernier message: 24/07/2011, 00h26
  2. [débutant]Problème de mémoire
    Par coyotte507 dans le forum C++
    Réponses: 10
    Dernier message: 18/04/2008, 15h01
  3. [Débutant] Problème de déconnexion d'une page JSP
    Par amal9 dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 22/01/2004, 13h40
  4. [débutant] Problèmes avec CRegKey
    Par Pedro dans le forum MFC
    Réponses: 4
    Dernier message: 10/11/2003, 15h28
  5. Réponses: 11
    Dernier message: 02/09/2003, 14h20

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