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

C Discussion :

Probleme avec pow(x,y)


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut Probleme avec pow(x,y)
    Salut,
    Dans mon programme je dois utiliser pow, mais comme cette fonction utilise le type double et moi j'ai besoin de long.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    long x=12; //ici le long x ne gene pas le resultat
    double w=0; // par contre pour w je suis obligé de mettre le type double
    long m=0;
     
    w=pow(10,x); // le calcul
     
    m=ascii/w; 
    //apres je dois diviser ascii qui est un long par w mais quand je fait le printf pour m il mecrit m=0 je pense que c'est parce que je divise par un type double
    il faudrait que je puisse mettre mon double w en long w1
    Ou petre que l'erreur vient d'ailleurs
    merci d'avance
    ++

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    pow est un calcul sur des flottants.
    Pour calculer 10^xx est un entier, je pense que le plus simple est de faire le calcul soi-même (multiplier 1 par 10, x fois)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut
    Ok merci
    donc je vais creer ma fonction pow
    +

  4. #4
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Bonjour,

    Citation Envoyé par Yruama
    Salut,
    Dans mon programme je dois utiliser pow, mais comme cette fonction utilise le type double et moi j'ai besoin de long.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    long x=12; //ici le long x ne gene pas le resultat
    double w=0; // par contre pour w je suis obligé de mettre le type double
    long m=0;
     
    w=pow(10,x); // le calcul
     
    m=ascii/w; 
    //apres je dois diviser ascii qui est un long par w mais quand je fait le printf pour m il mecrit m=0 je pense que c'est parce que je divise par un type double
    il faudrait que je puisse mettre mon double w en long w1
    Ou petre que l'erreur vient d'ailleurs
    merci d'avance
    ++
    long n'est pas un type mais un modificateur (comme unsigned), par défaut c'est un long int (c'est pour ça que la division te retourne 0). Un cast lont int -> double ne doit pas être possible (rien de garantie que la taille d'un long int est inférieur ou égale à celle d'un double). Par contre tu peux le caster en long double et utiliser powl (C99).


  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut
    long n'est pas un type mais un modificateur (comme unsigned), par défaut c'est un long int (c'est pour ça que la division te retourne 0).
    Who je savais pas du tout sa.

    Par contre tu peux le caster en long double et utiliser powl (C99).
    bon alors je vais essaier sa.

    Merci merci

    On en apprends tout les jours

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

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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