Answered Valeur d'un TextBox en double

  • dimanche 29 avril 2012 15:19
     
      A du code

    Bonjour,

    Je ne connais pas encore toute la puissance du C# et j'aimerais votre avis. J'ai fais cette fonction pour récupérer dans un "double" la valeur que je saisie d'un TextBox :

    public static double RetourneDouble(string monstring)
            {
                try
                {
                    NumberFormatInfo nfi = NumberFormatInfo.CurrentInfo;
                    string dVal = "";
                    dVal = monstring.Replace(",", nfi.NumberDecimalSeparator).Replace(".", nfi.NumberDecimalSeparator);
                    return Double.Parse(dVal);
                }
                catch
                {
                    return 0;
                }
            }

    Notez que ça marche mais C# n'a pas directement une fonction ? ou quelque chose de plus direct ?

    Merci,christophe

Toutes les réponses

  • dimanche 29 avril 2012 20:42
     
     Traitée

    Bonjour,

    Je n'utilise plus la méthode Parse mais plutôt TryParse

    http://msdn.microsoft.com/en-us/library/3s27fasw.aspx

    ou

    http://msdn.microsoft.com/en-us/library/994c0zb1.aspx

    Généralement, j'utilise la méthode correspondant au 2ème lien, mais le 1er lien correspond au format d'un Double saisi avec la même culture que le système d'exploitation.

    TryParse renvoie false si la conversion est impossible ( format incorrect ou caractère non supporté dans la chaine de caractère à convertir ) ce qui évite de déclencher une exception risquant d'entraîner un "plantage" du programme ( ce qui est toujours d'un très mauvais effet sur un client ). Je préfère toujours prendre mes précautions et éviter les "plantages".

    En cas où la conversion est possible ( attention possible ne veut pas dire correcte ), TryParse retourne la valaleur convertie dans le 2ème paramètre ( attention c'est un paramètre qui doit être précédé de out...)

    N'hésitez à poster à nouveau pour plus d'explications ou d'aide.

    Bonne journée

    PS : c'est normal que je donne un lien vers la documentation américaine ( c'est la plus récente, la plus complète, la moins erronée et cela simplifie beaucoup de choses quand on travaille principalement avec des personnes ne parlant pas le français )


    Mark Post as helpful if it provides any help.Otherwise,leave it as it is.