visual studio : Résultat de chiffres décimaux fonctionne plus

visual studio : Résultat de chiffres décimaux fonctionne plus - C#/.NET managed - Programmation

Marsh Posté le 15-04-2023 à 18:20:21    

Salut a tous
 
 
J'ai une calculatrice qui calcul le taux de variation entre 2 chiffres.
 
Je sais pas pourquoi lorsque je rentre des chiffres dicimaux cela ne fonctionne plus alors qu'auparavant ça fonctionner bien..
 
Savez vous dou vient le probleme ?
 

Code :
  1. private void buttonTauxDeVariation_Click(object sender, EventArgs e)
  2.          {
  3.                 string stringPositionAchat = PositionAchatTextBox.Text.Trim().ToString();
  4.                    string stringPositionVente = PositionVenteTextBox.Text.Trim().ToString();
  5.                    if (!string.IsNullOrEmpty(stringPositionVente) && !string.IsNullOrEmpty(stringPositionVente))
  6.                    {
  7.                       Double doublePositionVente = 0.0;
  8.                       Double doublePositionAchat = 0.0;
  9.                       if (Double.TryParse(stringPositionVente, out doublePositionVente) && Double.TryParse(stringPositionAchat, out doublePositionAchat))
  10.                       {
  11.                          Double doubleResultVariation = (doublePositionVente - doublePositionAchat) / doublePositionAchat * 100;
  12.                          ResultatTauxDeVariation.Text = " " + doubleResultVariation.ToString("#,#0.00" ) + "%";
  13.                          StopLossTextBox.Text = " " + doubleResultVariation.ToString("#,#0.00" );
  14.                          ProfitLossTextBox.Text = " " + doubleResultVariation.ToString("#,#0.00" );
  15.                       }
  16.                   }
  17.                }


 
 
 
Merci

Reply

Marsh Posté le 15-04-2023 à 18:20:21   

Reply

Marsh Posté le 15-04-2023 à 19:47:18    

J'y connais rien :o , mais certainement une histoire de séparateur décimal, le vieux combat du point contre la virgule...

Reply

Marsh Posté le 17-04-2023 à 12:43:03    

J'y connais un tout petit peu :o et j'aurais dit la même chose.
TryParse utilisé sans arguments additionnels s'appuie sur les paramètres régionaux de la machine. Donc d'un Windows à un autre ça va forcément foirer selon la culture configurée.
Donc faut lui préciser, et verrouiller ça lors de la saisie ou traiter intelligemment les séparateurs et les trucs inattendus avant de parser (ne jamais faire confiance à l'utilisateur).


---------------
Topic .Net - C# @ Prog
Reply

Marsh Posté le 17-04-2023 à 21:31:15    

TotalRecall a écrit :

ne jamais faire confiance à l'utilisateur

Gros +1. C'est d'ailleurs souvent le truc le plus chiant, du moins pour des petits logiciels, valider/vérifier toutes les entrées utilisateur...

Reply

Marsh Posté le 06-05-2023 à 20:23:07    

Salut et vraiment désolé du retard j'ai eu un soucis avec mon PC.. Finalement, pour régler mon problème il fallait simplement configurer les décimales (de "," à "." ) de Windows 10

Reply

Marsh Posté le 12-05-2023 à 11:10:17    

C'est ce qu'on t'a expliqué mais tu as pris le problème complètement à l'envers.
 
Là tu fais en sorte que ça soit le PC qui s'adapte aux problèmes de l'application. Si tu es le seul à t'en servir ok, mais si c'est un truc susceptible de servir ailleurs (et en général c'est le cas des applications), tu ne peux pas demander à tes utilisateurs de faire tel ou tel bricolage dans leurs paramètres. Surtout si en plus c'est pour faire un truc contraire aux règles du pays où ils sont.


---------------
Topic .Net - C# @ Prog
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed