转换为两位小数到两位小数

时间:2012-06-26 17:46:01

标签: c# decimal rounding

你好我是c#新手会有人礼貌地告诉我如何将这段代码的值转换为双倍/舍入小数..提前感谢

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

4 个答案:

答案 0 :(得分:14)

使用Math.Round

Math.Round(mydoublevalue, 2);

在您的代码中

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

答案 1 :(得分:4)

如果您只想将值四舍五入显示为字符串,您还可以使用String.Format

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

文本“{0:0。##}”描述了您希望如何格式化它。 #表示不应包括结尾零(例如1.2保持字符串“1.2”),如果你改为“{0:0.00}”,则无论如何都包括两​​个小数位,因此双1.2将变为“1.20” ”

答案 2 :(得分:4)

我的回答很晚,但对于那些像我一样想要的人:

转换为double / decimal和 也希望值始终显示2位小数(.00) String

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

以下是指任何时候两位小数。

"#.00"

如果有值,则以下表示两位小数。

"#.##"

答案 3 :(得分:1)

这样做。

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