web-dev-qa-db-ja.com

小数点以下2桁に変換する

こんにちは私はc#の初心者です。誰かがこのコードの値を倍精度または丸められた10進数に変換する方法を誰かに丁寧に教えてくれます。

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

使用する - Math.Round

Math.Round(mydoublevalue, 2);

あなたのコードで

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

値を文字列として表示するために丸めるだけの場合は、 String.Format を使用することもできます。

tbtotal1.Text = String.Format("{0:0.##}", total1);

テキスト「{0:0。##}」は、そのフォーマット方法を説明しています。 #は、末尾のゼロを含めないことを示します(たとえば、1.2は文字列 "1.2"のままです)。代わりに "{0:0.00}"を実行すると、小数点以下2桁が含まれるため、ダブル1.2は "1.20"になります。 」.

4
Tyler

私の答えはかなり遅いですが、私のようなそこにいたい人のために:

double/decimalおよびに変換するには、値に常に小数点以下2桁を表示したい(.00)asString

tbtotal2.Text = Math.Round(total2, 2).ToString("#.00"); 

以下は、常に小数点以下2桁を意味します。

"#.00"

値がある場合、以下は小数点以下2桁を意味します。

"#.##"
4
alexan

このようにしてください。

 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