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#1.1]Pourquoi perte du séparateur lors ToDouble(string)?


Sujet :

C#

  1. #1
    Membre éclairé
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Points : 776
    Points
    776
    Par défaut [C#1.1]Pourquoi perte du séparateur lors ToDouble(string)?
    Je développe un service web qui récupère des données d'une page web.
    Je récupère ainsi un nombre à virgule sous forme de chaîne de caractères que je souhaite transformer en double. J'utilise donc la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Convert.toDouble(string)
    qui me permet de le transformer.

    Je n'ai aucun problème sur nos deux serveurs de développement d'entreprise. Par contre, sur le serveur de production, les virgules des nombres sont ignorés.
    Par exemple, pour une chaîne "5,8", en production cela devient "58".

    Je soupçonne les configurations Windows d'options régionales mais je ne sais pas exactement laquelle. Donc, si vous savez c'est laquelle, cela me donnerais un coup de pouce.

    Par contre, si vous avez une méthode pour signifier à la méthode de prendre les nombres avec des virgules, cela serait encore mieux car je ne veux pas jouer trop souvent avec les configuration du serveur de production.

    Merci beaucoup

  2. #2
    Membre expérimenté Avatar de LaChips
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 109
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 109
    Points : 1 482
    Points
    1 482
    Par défaut
    et si tu remplaces la virgule par un point? et après tu fais la convertion

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Points : 621
    Points
    621
    Par défaut
    Il faut utiliser NumberFormatInfo.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                System.Globalization.NumberFormatInfo numFmtInfo = new System.Globalization.NumberFormatInfo();
                numFmtInfo.NumberDecimalSeparator = ",";
                String numStr = "12,34";
                double num = (double) Convert.ChangeType(numStr, typeof(double), numFmtInfo);
                //ici, num = 12.34
                numFmtInfo.NumberDecimalSeparator = ".";
                numStr = "56.78";
                double num2 = (double)Convert.ChangeType(numStr, typeof(double), numFmtInfo);
                //ici, num2 = 56.78
    Il est aussi possible de changer le CultureInfo courant pour choisir un séparateur décimal valable pour toute l'application.

  4. #4
    Membre éclairé
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Points : 776
    Points
    776
    Par défaut
    Citation Envoyé par LaChips
    et si tu remplaces la virgule par un point? et après tu fais la convertion
    Mauvaise solution car cela ne fonctionnera plus sur les serveurs de développement.

    Merci pour ta solution NicolasG.
    Je m'y met tout de suite.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/09/2006, 00h01
  2. perte de dessin lors du rafraichissement de fenètre
    Par tawsi dans le forum Graphisme
    Réponses: 1
    Dernier message: 04/06/2006, 07h38
  3. [MySQL] Perte d'information lors d'une requête de visualisation
    Par niccco dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/10/2005, 13h46
  4. [GD] probleme de perte de qualité lors de miniature de photos?
    Par brasco06 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 23/05/2005, 16h03
  5. Pb de séparateur lors du chargement sous excel
    Par mickael777 dans le forum C++Builder
    Réponses: 5
    Dernier message: 25/06/2004, 09h52

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