我有这个代码来计算datagridview中所有行的2个相乘列的摘要。
private void vypocti_odvody(int price, int vat, int tot_rows2)
{
try
{
double outVal = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
outVal = outVal + (Convert.ToDouble(row.Cells[price].Value)/100) * Convert.ToDouble(row.Cells[vat].Value) + (Convert.ToDouble(row.Cells[price].Value));
}
// s_ub_celk.Text = (((a / 100) * b) + a).ToString();
Convert.ToDecimal ( result.Text = outVal.ToString()) ;
}
catch (Exception ex)
{
MessageBox.Show("Chybové hlášení K3 " + ex.Message.ToString());
}
}
如何改善小数位?现在的结果是:123,5484250我想只有2个小数位,结果例如123,55。
对不起,我的英语很差,我希望'小数位'能说出我真正的意思。如果我为更好的理解做了一个例子。
感谢大家的时间,意见和答案。
答案 0 :(得分:4)
由于您使用DataGridView
,您可以设置单元格的格式,如
DataGridView1.Columns[required column index or name].DefaultCellStyle.Format = "N2"
答案 1 :(得分:2)
使用格式字符串转换文本:
result.Text = outVal.ToString("0.00");
有关如何格式化数字的更多方法,请参阅this list。您也可以使用
result.Text = string.Format("{0:0.00}", outVal);
与上面的代码完全相同。
答案 2 :(得分:2)
您可以使用Math.Round(value, digits)
值是您的结果,数字是您想要的小数
答案 3 :(得分:1)
使用System.Globalization.NumberFormatInfo来控制设置。
System.Globalization.NumberFormatInfo numberFormatInfo = new System.Globalization.NumberFormatInfo();
numberFormatInfo.NumberDecimalDigits = 2;
decimal decimalexample = 123.5484250M;
string decimalasstring = decimalexample.ToString(numberFormatInfo);
问候。