4

我有这段代码计算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。

对不起,我的英语很差,我希望“小数位”能表达我真正的意思。为了更好地理解,我举了一个例子。

谢谢大家的时间,评论和回答。

4

4 回答 4

4

由于您正在使用DataGridView,您可以设置单元格的格式,例如

DataGridView1.Columns[required column index or name].DefaultCellStyle.Format = "N2"
于 2013-07-31T09:00:11.223 回答
2

使用格式字符串转换文本:

result.Text = outVal.ToString("0.00");

有关如何格式化数字的更多方法,请参阅此列表。你也可以使用

result.Text = string.Format("{0:0.00}", outVal);

这与上面的代码完全相同。

于 2013-07-31T08:55:48.043 回答
2

您可以使用Math.Round(value, digits)

该值是您的结果,数字是您想要的小数位数

于 2013-07-31T08:56:46.163 回答
1

使用 System.Globalization.NumberFormatInfo 来控制设置。

System.Globalization.NumberFormatInfo numberFormatInfo = new System.Globalization.NumberFormatInfo();           
numberFormatInfo.NumberDecimalDigits = 2;

decimal decimalexample = 123.5484250M;

string decimalasstring = decimalexample.ToString(numberFormatInfo);

问候。

于 2013-07-31T09:06:21.857 回答