带小数点后两位的返回小数C#

时间:2015-06-09 10:20:37

标签: c# grid rounding

我正在尝试使用两位小数来舍入十进制值,例如:我有57,3283858998144712​​43042671610,我想要57.33。

     for (int i = 1; i < cobtable.Columns.Count; i++) //loop para preencher a linha das percentagens
        {
            Decimal a = (Decimal)cobtable.Rows[2][i];
            Decimal b = (Decimal)cobtable.Rows[0][i];
            cobtable.Rows[3][i] = Decimal.Divide(a, b) * 100;

           // Decimal c = (Decimal)cobtable.Rows[3][i];

          // c = (a / b) * 100;

          //  c = Math.Round(c,2);

           Response.Write((Decimal)cobtable.Rows[3][i]);
           Response.Write("*");
        }

       GroupGrid.DataSource = cobtable;
       GroupGrid.DataBind();

c变量为response.write()提供了正确的值,但在网格中它没有显示相同的值,它显示57,3283858998144712​​43042671610。我做错了什么?

3 个答案:

答案 0 :(得分:0)

使用以下方法:

 Math.Round(57.328385899814471243042671610,2);

第二个参数是小数位数

答案 1 :(得分:0)

System.Math.Ceiling(c * 100) / 100);

这样的事可能会奏效。

答案 2 :(得分:0)

GridView

中为相关列指定DateFormatString
DataFormatString="{0:F2}"  // Rounds to 2 decimal places

这会影响值对用户的显示方式,而不会导致舍入导致实际数据丢失。