在DATAGRID中设置一个LABEL,取数据库中的MONEY字段的值,为显示好看,将其格式输出为{0:C},即带人民币符号的字符串.
现在的问题是要取这个LABEL的值,并转换回DECIMAL时,取出的TEXT值多了一个符号,然后取出后面的数值且转换成DECIMAL类型呢?

解决方案 »

  1.   

    <%# DataBinder.Eval(Container.DataItem,"id_card",{0:c
    }) %>
      

  2.   

    SubString取需要的值,字符串处理功能强大,自己可以研究下
      

  3.   

    可以使用如下方式来处理:
    foreach (GridViewRow row in GridView1.Rows)
    {
         Label lbl= row.FindControl("label2") as Label;
         string temp = lbl.Text.Substring(1);
         this.TextBox1.Text += decimal.Parse(temp) + "\r\n";
    }
    但是由于使用了{0:C}来显示数据,已经将MONEY字段的数值的精确度降低了,所以通过从显示的数据行中获取数值并转换为decimal类型的值已经不准确了。建议不要使用如上方式处理,能够保持精确度的方法是
    1、从数据库中重新抓取数据;
    2、在进行绑定的时候将数据保存下来,获取数据时直接从保存的数据中获得。
      

  4.   

    Charlie_Lee() ,谢谢了,我已经改从数据库中取值了