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

ASP.NET Discussion :

Conversion de Decimal/Double etc.


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 79
    Par défaut Conversion de Decimal/Double etc.
    Bonjour,

    Je suis un débutant en ASP.NET. Je développe un application Web contenant beaucoup de grilles. J'ai un problème car dans ma BD tout les champs Decimal sont enregistrés en varchar avec un "." comme séparateur.
    Lorsque je manipule des Decimals ou des doubles dans mon application, le "." ce change souvent pour une virgule par exemple lorsque je fait un .ToString() sur un double.

    Pourtant j'ai défini ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Thread.CurrentThread.CurrentCulture = New CultureInfo("fr-CA")
    Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator = "."
    Donc lorsque je veux convertir par la suite une string "4,56" en double par exemple, j'ai un runtime error car c'est une virgule et non un point.

    Quelqu'un pourrait m'aider?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu peux utiliser la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Convert.toDouble("4,56")
    et si tu as toujours un problème tu peux aller plus loin en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Convert.toDouble("4,56".Replace(",","."))

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Bonjour,

    Citation Envoyé par joce21 Voir le message
    Je suis un débutant en ASP.NET. Je développe un application Web contenant beaucoup de grilles. J'ai un problème car dans ma BD tout les champs Decimal sont enregistrés en varchar avec un "." comme séparateur.
    Pour utiliser "." comme séparateur, utilise CultureInfo.InvariantCulture.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    			string champ = "1.234";
    // Conversion vers type decimal
    			decimal d = decimal.Parse(champ, CultureInfo.InvariantCulture);
    // chaine avec "," depuis decimal
    			string champFR = d.ToString(new CultureInfo("FR-fr"));
    // chaine avec "." depuis decimal
    			string champUS = d.ToString(CultureInfo.InvariantCulture);
    Question : qui a eu l'idée d'une rare stupidité consistant à enregistrer des nombres en varchar dans la DB ????? Tu ne peux pas modifier le modèle de données ?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 79
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Bonjour,



    Pour utiliser "." comme séparateur, utilise CultureInfo.InvariantCulture.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    			string champ = "1.234";
    // Conversion vers type decimal
    			decimal d = decimal.Parse(champ, CultureInfo.InvariantCulture);
    // chaine avec "," depuis decimal
    			string champFR = d.ToString(new CultureInfo("FR-fr"));
    // chaine avec "." depuis decimal
    			string champUS = d.ToString(CultureInfo.InvariantCulture);
    Question : qui a eu l'idée d'une rare stupidité consistant à enregistrer des nombres en varchar dans la DB ????? Tu ne peux pas modifier le modèle de données ?
    Merci Bluedeep et gcorbineau.

    Pour répondre à ta question, je travaille dans une petite compagnie qui existe depuis plus de 10 ans et il ont décidé de tout mettre en varchar. Je trouve ça moi aussi étrange comme façon de faire étant donné qu'il nous ont pas montré a faire ça dans mes cours à l'école. La BD est beaucoup trop volumineuse pour la modifier.

Discussions similaires

  1. [Conversion]int to double
    Par frouge dans le forum Général Java
    Réponses: 6
    Dernier message: 03/02/2012, 09h34
  2. [VB.NET]Comment obtenir conversion exacte Single>Double?
    Par Misterburma dans le forum VB.NET
    Réponses: 9
    Dernier message: 09/02/2006, 22h24
  3. Problème conversion float vers double
    Par jhenaff dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/01/2006, 10h39
  4. conversion string en double
    Par zmatz dans le forum SL & STL
    Réponses: 2
    Dernier message: 14/10/2005, 22h46
  5. Conversion Hexa --> Decimal
    Par lory_van_eyck dans le forum Général Python
    Réponses: 2
    Dernier message: 28/09/2005, 07h29

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