C# 转换为双精度到小数点后两位

C# 转换为双精度到小数点后两位,c#,decimal,rounding,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.Cou

嗨,我是一名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);
}
}
DataTable dtValues=新的DataTable(“GetValues”);
strValueNumber=ValueNumber[0]。ToString();
dtGetValues=SQLMethods.GetValues(strValueNumber);
总数=0;
对于(int i=0;i
使用

在代码中

tbtotal2.Text = Math.Round(total2, 2).ToString(); 
像这样做

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

如果只希望将值舍入显示为字符串,也可以使用


文本“{0:0.##}”描述了您希望如何格式化它。#表示结尾的零不应该包括在内(例如1.2保留字符串“1.2”),如果你改为“{0:0.00}”,则无论发生什么情况,都会包含两位小数,因此双1.2将变为“1.20”。

我的答案很晚了,但对于像我这样想要的人来说:

要转换为双精度/十进制且还希望值始终显示两位小数(.00)作为
字符串

tbtotal2.Text = Math.Round(total2, 2).ToString("#.00"); 
以下数字表示始终保留两位小数

"#.00"
如果有值,以下表示小数点后两位

"#.##"

您可能应该将文本框设置在循环之外<代码>总计
已声明但未使用
total1
total2
应该在循环之前存储为零。@user1483145:另外,正如您所说,您是新手,可能需要指出的是.net和c#有一个名为
decimal
的数据类型,它比
double
更准确地表示十进制数。不过,它不会显示.00,我说得对吗?例如
26.00
将显示为
26
"#.00"
"#.##"