web-dev-qa-db-fra.com

conversion en double à deux décimales

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);
}
}
9
user1483145

Utilisez Math.Round

Math.Round(mydoublevalue, 2);

Dans votre code

tbtotal2.Text = Math.Round(total2, 2).ToString(); 
14
Nikhil Agrawal

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 ".

4
Tyler

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.

"#.##"
4
alexan

Fais-le comme ça. 

 tbtotal1.Text = Math.Round(double.Parse(total1.ToString()), 2).ToString();
 tbtotal2.Text = Math.Round(double.Parse(total2.ToString()), 2).ToString(); 
1
Adil

inputValue = Math.Round (inputValue, 2);

0
sandipmatsagar