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 :

Convertir un double en expression décimale


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Convertir un double en expression décimale
    Salut,

    Désolé si je n'ai peut etre pas tout a fait bien exprimé la question ?

    C'est pas bien complexe mais je cherche la plus jolie maniere de faire

    D'une part j'ai un string numerique entier disons "63"
    D'autre part j'ai un double, disons 78419.352

    En resultat je dois donner un double composite de ces deux informations

    Soit

    63.78419352

    Je vois bien entendu plusiurs maniere +/- tordues d'y arriver mais je suis a la chasse aux bonnes idées

    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Allez, je me lance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            string monint = "63";
            string monsep = ".";
            double mondouble = 78419.352;
            decimal monDecimal = Decimal.Parse(string.Concat(monint, monsep, mondouble.ToString().Remove(".")));

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci calagan99

    Tout repasser en string et le reconvertir est une solution que j'avais envisagé, ta maniere de l'ecrire est je trouve asser propre et concise mais je me demande s'il n'y aurait pas encore plus efficace ?
    Ca me chagrine un peu de convertir un double en string pour le reconvertir en double (en ayant bricolé le séparateur décimal au passage)

  4. #4
    Membre Expert
    Avatar de Sehnsucht
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2008
    Messages
    847
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Octobre 2008
    Messages : 847
    Par défaut
    Si c'est une solution purement mathématique que tu cherches, je proposerais bien ça, mais je ne sais pas si ça répond à ta définition de efficace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    string monInt = "63";
    double monDouble = 78419.352;
    decimal resultat = Decimal.Parse(monInt);
    while (monDouble > 1)
        monDouble /= 10;
    resultat += monDouble;

  5. #5
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Voilà des specs bien bizarres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public double Olibarisme(double d, string s)
    {
      if (d <= 0) throw new TrèsFachéException();
      // qu'est ce qu'on fait si d est entre 0 et 1, au fait ?
      int partieEntière = int.Parse(s);
      while (d > 1)
        d /= 10;
      return partieEntière + d;
    }

  6. #6
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci pour les solutions proches de Sehnsucht et Guuhl


    Cet Olibarisme est lieé au multiples et inatendues contrainte quand il faut traiter des fichiers de toutes sortes

    Guuhl : d<1 ne peut pas arriver mais je ne vois pas ce que ca pourrait poser comme problème dans vos solution ?

    Je ne crois pas que l'on puisse faire plus efficace et lisible

  7. #7
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    De rien

    Le problème, je pense, est que tu ne vas pas avoir beaucoup d'autre choix que de transformer ton double en string pour en supprimer le séparateur de décimale.
    Dés lors, puisque tes autres variables sont des strings, autant passer par une string globale.

    C'est en tout cas comme cela que j'ai vu les choses

    Edit : je ne suis qu'un Padawan, j'ai encore beaucoup à apprendre

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

Discussions similaires

  1. Validation de Double - séparateur de décimal
    Par vano dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 12/10/2006, 14h36
  2. convertir un double en CString
    Par cenedra dans le forum MFC
    Réponses: 2
    Dernier message: 08/08/2006, 09h04
  3. convertir un double en CString
    Par youngkoolboy dans le forum MFC
    Réponses: 4
    Dernier message: 22/05/2006, 18h54
  4. Comment convertir un nombre de jours décimal en date
    Par Soutou dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/11/2005, 00h57
  5. convertir un Double en integer
    Par amelhog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 17/08/2005, 09h08

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