decimal转TEXT然后再转回来的问题
在DATAGRID中设置一个LABEL,取数据库中的MONEY字段的值,为显示好看,将其格式输出为{0:C},即带人民币符号的字符串.
现在的问题是要取这个LABEL的值,并转换回DECIMAL时,取出的TEXT值多了一个符号,然后取出后面的数值且转换成DECIMAL类型呢?
------解决方案-------------------- <%# DataBinder.Eval(Container.DataItem, "id_card ",{0:c
}) %>
------解决方案--------------------.SubString(1)
------解决方案--------------------可以使用如下方式来处理:
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、在进行绑定的时候将数据保存下来,获取数据时直接从保存的数据中获得。