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 :

[C#]Problème de Cast


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Par défaut [C#]Problème de Cast
    Bonjour,

    Je débute en C, j'essaye de faire une division assez simple, mais j'ai tjs des problèmes de Cast. Quand je n'ai plus d'erreur ma valeur me renoit 0.0 alors que dans ma division cela devrait renvoyé au moins qqchose.

    J'essaye de diviser une donnée venant d'un DataRow


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    float v= (((float)r[NomChampPourValeur] / 360) * Total);

    Merci de votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 201
    Par défaut
    C'est quoi ce charabia là ?
    Donne nous le type de chacune de tes variables.

  3. #3
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Citation Envoyé par dai.kaioh
    j'ai tjs des problèmes de Cast. Quand je n'ai plus d'erreur
    Comment t'a fait pour ne plus avoir d'erreur ?

    mes un ptit breakpoint et regarde les differentes valeurs de tes variables

  4. #4
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Par défaut
    Voila le détails de mes variables


    r[NomChampPourValeur] peux être un int ou un float
    Total un int

    v est un float

    Je voudrais pouvoir diviser r[NomChampPourValeur] par 360 et multiplié le tout par total

    Et je me mélange dans les cast je n'arrive pas à faire l'operation correctement.

    Merci

  5. #5
    Membre éclairé
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Par défaut
    Décompose, ce sera plus simple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    float fV = 0f;
     
    float const fTour = 360f;
     
    float fTotal=(float)Total;
     
    float fR = (float)r[NomChampPourValeur];
     
    fV= (fR / fTour) * fTotal;
    Essaye ça, ça devrait aller.

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Par défaut
    Essaie juste de diviser par 360.0

  7. #7
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    148
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 148
    Par défaut
    J'ai fais cela, mais j'ai tjs l'erreur "Le cast spécifié n'est pas valide" sur la premiere ligne

    La variable r[NomChampPourValeur] est un DataRow qui renvoi un int normalement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    float V = (float)r[NomChampPourValeur];
    float fTotal = (float)Total;
    float Tour = 360F;
    float v_angle = (V / Tour) * fTotal;

  8. #8
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Pas lu les réponses (m'ont lair super compliquées)
    Ton problème vient du fait que tu fais une division entière.
    Pour faire une division en réel, remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float v= (((float)r[NomChampPourValeur] / 360) * Total);
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float v= (((float)r[NomChampPourValeur] / 360f) * Total);

Discussions similaires

  1. [CASTS]problème de cast de Time
    Par DeVoN dans le forum Langage
    Réponses: 7
    Dernier message: 22/02/2006, 17h24
  2. [JDBC Driver][JSTL] Problème de cast de données
    Par GyLes dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/09/2005, 10h00
  3. problème de cast!
    Par LaseLiep dans le forum Langage
    Réponses: 3
    Dernier message: 03/06/2005, 09h30
  4. Problème de cast/serialization/externalization ?
    Par Linlin dans le forum CORBA
    Réponses: 1
    Dernier message: 06/12/2004, 16h46
  5. [C#] Problème de casting de @IDENTITY
    Par bilb0t dans le forum Accès aux données
    Réponses: 7
    Dernier message: 03/09/2004, 09h42

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