private void FrmPurchaseStockReceipt_Load(object sender, EventArgs e)
        {
            GetAllTools();
            SetPageTools();
            InitData();
            ClickInitial();
            this.dgv_Data.Columns["flotprice"].DefaultCellStyle.Format = "C2";
            this.dgv_Data.Columns["flotamount"].DefaultCellStyle.Format = "0.00";
        }

解决方案 »

  1.   

    我在LOAD事件中,设置了,为什么一点反应都没有呢?
      

  2.   


    1、decimal.Round(decimal.Parse("0.3333333"),2)
    2、String.Format("{0:F}","0.333333");//默认为保留两位
      

  3.   

    String.Format("{0:F}","N");保留两位小数!
      

  4.   

    我是要在从数据库读出数据的时候,在datagridview显示为0.00格式啊,还有在编辑单元格的时候,我输入8,自动变为8.00,这样子的效果。
      

  5.   

    我想问的就是列的DefaultCellStyle属性,这个属性,像我贴的代码中。写的不对吗?
      

  6.   

    简单的事情不要复杂化,你点击编辑的时候,如果窗体外显示的ViewCell是8.00,点编辑的时候,EditCell内也是显示8.00的的,“我输入8,自动变为8.00”在Edit的时候,如果你想这么做的话,就得用js来控制显示格式,及用js的Regular来控制输入字符验证。
    so,建议你简单的用String.Format来处理下,先达到目的!
      

  7.   

    试下this.dgv_Data.Columns["flotamount"].DefaultCellStyle.Format = "{0: 0.00}";
      

  8.   

    查询出的数据是不是填充在 DataTable 或 DataSet 中给 dgv_Data 赋值,如果是,数据集中那列是什么类型?在赋值的代码后加上
    MessageBox.Show(this.dgv_Data.Rows[0].Cells["flotprice"].Value.GetType().ToString());
    这行,看下弹出框显示的那列值的具体类型
      

  9.   


    真是奇怪,我用的是oracle,数据库明明是number类型,可是,message出来的类型是system.string
      

  10.   

    我能在绑定数据源的时候,把这个类型改过来吗?
    比如这样!
    DataTable dt = ibusinessService.PurchaseOrder_GetPurchaseOrderDetail(out outEx, lngOrderReceiptId);
    dt.Columns["flotprice"].DataType = System.Int32;
      

  11.   

    DataType 改不了的,ibusinessService.PurchaseOrder_GetPurchaseOrderDetail 这个方法里是怎么处理的?
      

  12.   

    问题解决了,是因为我的数据源在绑定之前,进行了toTable,由于string类型兼容性比较好,所以在toTable的时候,把字段都转换成了string类型。这样的话,string类型不能进行Format。导致没有反应。结贴,感谢avphoenixi!