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 :

faire un replace variable double


Sujet :

C#

  1. #1
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Par défaut faire un replace variable double
    Bonjour,

    Je suis vraiment débutante en C#,

    J'ai une variable partieDec déclarer double,
    je veux faire un replace si elle contient une virgule au lieu du point comme décimale.

    comment je dois faire ?

    partieDec.Replace(",", ".")

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 189
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 189
    Par défaut
    un double est un numéric donc pas de replace.

    Plusieurs solution.
    -Tu changes la Culture de ton PC
    -Tu changes la CultureInfo de ton programme
    -Tu fais maValue.ToString(CultureInfo)

  3. #3
    Membre Expert Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Par défaut
    Rien ne dit qu'il s'agisse d'une application Desktop.
    Tu es sur quel type d'application?

    Il paraîtrait en effet logique de contraindre l'utilisateur à saisir un numérique en fonction d'une "culture" (je te laisserai regarder sur la MSDN comment ça se décline dans le monde .net). En effet, un américain (par exemple) n'utilisera pas la virgule de la même qu'on l'utilise en France, donc un "replace" ne semble pas adapté à ton problème... s'il s'agit bien d'un problème de saisie utilisateur!

  4. #4
    Membre confirmé
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2012
    Messages
    136
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2012
    Messages : 136
    Par défaut faire un replace avec variable double
    Bonjour,

    Oui, à la base c'est un problème d'utilisateur et tout à été fait.

    Mais, dans ma table mes données qui sont présente depuis longtemps
    contienne une virgule au lieu d'un point.

    Dans mon programme c,est une chaine de caratère qui contient
    "Longueur 2.25"

    on extrait les derniers caratères dans une variable double.

    Pour moi le plus simple est de faire un replace dans la programme.

    Merci

  5. #5
    Membre éclairé Avatar de Destiny
    Profil pro
    Inscrit en
    Février 2005
    Messages
    720
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 720
    Par défaut
    decimal dTest = 0;
    string sString = "";

    sString = dTest.ToString();
    sString = sString.Replace(",",".");

    dTest = decimal.Parse(sString);

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Bonjour,

    Je suis vraiment débutante en C#,
    Pour moi le plus simple est de faire un replace dans la programme
    Je te conseillerai de suivre les avis des développeurs expérimentés qui t'ont conseillé En effet, la signification des '.' et des ',' n'est pas la même partout.

    Si j'ai bien compris, tu as une chaine sous la forme "Longueur 2.25".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    string chaineDeLaBase = "Longueur 2.25";
    string maLongueurEnChaine = chaineDeLaBase.Split(" ").LastOrDefault();
     
    // Ici tu voulais faire quelque chose comme ça
    // maLongueurEnChaine.Replace(".", ",");
    // double maLongueur = double.Parse(maLongueurEnChaine);
     
    //Voici ce qu'il est conseillé de faire
    double maLongueur = double.Parse(maLongueurEnChaine, NumberStyles.AllowDecimalPoint); // Autorise juste les points pour séparer les décimales
    double maLongueur2 = double.Parse(maLongueurEnChaine, CultureInfo.GetCultureInfo("en-US")); // Parse en fonction de la culture ciblée
    Comme tu le vois, les deux solutions ci dessus sont plus concises, et surtout plus claires. Le jour où le format en DB changera, le replace() restera et deviendra du code legacy. Au fur et à mesure, ça devient incompréhensible et personne ne peut y toucher.

    Comme on dit, keep it simple
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

Discussions similaires

  1. [C#] Comment faire String.Replace, CaseInsensitive ?
    Par lolo_ici_et_la dans le forum C#
    Réponses: 3
    Dernier message: 17/03/2006, 10h06
  2. [ADO.Net][C#/SQL 2005] Comment faire INSERT avec variable ?
    Par hduchemin dans le forum Accès aux données
    Réponses: 1
    Dernier message: 25/01/2006, 17h34
  3. faire passer une variable d'une fct js à une page php
    Par harlock59 dans le forum Langage
    Réponses: 1
    Dernier message: 25/11/2005, 14h41
  4. [Conversion]Comment faire pour couper un Double trop long?
    Par dessinateurttuyen dans le forum Général Java
    Réponses: 1
    Dernier message: 13/11/2005, 02h22
  5. [DEBUTANT] Transformer une variable Double en STring
    Par Battosaiii dans le forum Langage
    Réponses: 6
    Dernier message: 13/06/2005, 16h43

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