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 :

convertion du string au double


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 35
    Points : 14
    Points
    14
    Par défaut convertion du string au double
    Bonjour,
    Comment récupérer une valeur double d'un string.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String titi="nj12.3iuj";
    Je veux avoir comme résultat

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Pour commencer il faut garder seulement les chiffres et le point décimal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    String titi="nj12.3iuj";
    StringBuilder sb = new StringBuilder(titi);
    int i = 0;
    while(i < sb.Length)
    {
        if (!Char.IsDigit(sb[i]) && sb[i] != '.')
        {
            sb.Remove(i, 1);
            continue;
        }
        i++;
    }
    titi = sb.ToString();
    Et ensuite utiliser Double.Parse pour convertir la chaine en double :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Double toto = Double.Parse(titi, CultureInfo.InvariantCulture);
    (il faut préciser d'utiliser la culture invariante, parce que sinon par défaut ça utiliserait la culture courante, et en français le séparateur décimal est la virgule, pas le point)

  3. #3
    Membre à l'essai
    Inscrit en
    Décembre 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 35
    Points : 14
    Points
    14
    Par défaut
    Bonjour,
    Merci pour ta réponse.
    Enfaite j''ai utilisé ton idée donnée un autre code qui sélectionne des éléments d'une base de donnée et les traites mais lors de l'exécution je reçois une erreur
    Input string was not in correct format
    J’ai essayé de changer le type de cultureInfo mais ca marche pas.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
             {
                 byte[] comBuffer = new byte[255];
                 serialPort.Read(comBuffer, 0, comBuffer.Length);
                 string s1 = Encoding.ASCII.GetString(comBuffer);
                 st1 = new StringBuilder(s1, 50);
                 ArrayList trame1 = new ArrayList(50);
                 trame1.Add(st1);
     
                DisplayData2(st1.ToString().Substring(3, 5));
            try
                 {
                     StringBuilder sb = new StringBuilder(st1.ToString().Substring(3, 5));
                     int i = 0;
                     while (i < sb.Length)
                     {
                         if (!Char.IsDigit(sb[i]) && sb[i] != '.')
                         {
                             sb.Remove(i, 1);
                             continue;
                         }
                         i++;
                     }
                     string ad = sb.ToString();
                   double d1 = Convert.ToDouble(ad, new CultureInfo("en-US"));
                    // double d1 = Convert.ToDouble(ad, new CultureInfo("fr-FR"));
                      Program.connexion.Open();
                         SqlCommand myCommand = new SqlCommand("insert into Oven(Time_Level_1) values('" + d1.ToString() + "')", Program.connexion);
                         myCommand.ExecuteReader();
     
                 }
                 catch (Exception z)
                 {
                    MessageBox.Show(z.ToString());
                 }
                 Program.connexion.Close();
    }

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 082
    Points
    8 082
    Par défaut
    Plus court:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    double myDouble = Double.Parse(String.Concat(titi.Where(c=>Char.IsDigit(c) || c=='.')),CultureInfo.InvariantCulture);
    Edit: Ah bah oué, mais ca sert a rien de faire un double pour refaire un tostring() derrière

    Utilise plutôt une requête parametrée.

Discussions similaires

  1. [.Net 2.0] Convertion String^ en double
    Par caradhras dans le forum Débuter
    Réponses: 2
    Dernier message: 04/08/2009, 11h03
  2. Convertion String en double ou float
    Par superjaja dans le forum C#
    Réponses: 6
    Dernier message: 31/12/2007, 13h00
  3. convertion d'un string en double
    Par tetedeturcq dans le forum ASP.NET
    Réponses: 7
    Dernier message: 29/06/2007, 15h09
  4. Aide de convertion de string
    Par touriste13 dans le forum SL & STL
    Réponses: 11
    Dernier message: 03/03/2005, 14h20
  5. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 20h22

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