Bonjour, je suis un novice. Quelqu'un me dirait-il poliment comment convertir les valeurs de ce code en un nombre décimal double/arrondi ... merci d'avance
DataTable dtValues = new DataTable("GetValues");
strValueNumber = ValueNumber[0].ToString();
dtGetValues = SQLMethods.GetValues(strValueNumber);
total = 0;
for (int i = 0; i < dtValues.Rows.Count; i++)
{
total1 = total1 + Convert.ToInt32(dtGetValues.Rows[i]["total_1"]);
total2 = total2 + Convert.ToDouble(dtGetValues.Rows[i]["total_2l"]) * .45;
tbtotal1.Text = total1.ToString();
tbtotal2.Text = total2.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show("Error in returning selected Values. " +
"Processed with error:" + ex.Message);
}
}
Utilisez Math.Round
Math.Round(mydoublevalue, 2);
Dans votre code
tbtotal2.Text = Math.Round(total2, 2).ToString();
Si vous souhaitez uniquement arrondir la valeur à afficher en tant que chaîne, vous pouvez également utiliser String.Format .
tbtotal1.Text = String.Format("{0:0.##}", total1);
Le texte "{0: 0. ##}" décrit comment vous souhaitez le formater. Le # indique que les zéros de fin ne doivent pas être inclus (par exemple, 1.2 reste la chaîne "1.2"). Si vous faites plutôt "{0: 0.00}", deux décimales sont incluses quoi qu'il en soit, ainsi le double 1.2 deviendrait "1.20 ".
Ma réponse est assez tardive, mais pour ceux qui, comme moi, veulent:
pour convertir en double/décimal et veulent également que la valeur affiche toujours 2 décimales (.00) comme String
tbtotal2.Text = Math.Round(total2, 2).ToString("#.00");
Le dessous indique deux décimales en tout temps.
"#.00"
Le dessous indique deux décimales s'il y a une valeur.
"#.##"
Fais-le comme ça.
tbtotal1.Text = Math.Round(double.Parse(total1.ToString()), 2).ToString();
tbtotal2.Text = Math.Round(double.Parse(total2.ToString()), 2).ToString();
inputValue = Math.Round (inputValue, 2);