日期:2014-5-18 浏览次数:20249次

遇到个类型转换问题,请教各位
DataTable dt = new DataTable();
   
dt.Columns.Add("大于200人数", System.Type.GetType("System.Int16"));
dt.Columns.Add("总人数", System.Type.GetType("System.Int16"));
dt.Columns.Add("比例", System.Type.GetType("System.String"));

前面两列数据已经成功添加进去了
最后一列如果用 dt.Columns["比例"].Expression = "大于200人数/总人数";

dataGridView1.DataSource = dt; 正常
--------------------------------------------------------------------

但由于小数位数太多,希望用显示2位小数,如果用
dt.Columns["比例"].Expression = ("大于200人数/总人数").ToString();
则仍然显示一长串小数,但程序能调通
--------------------------------------------------------------------
如果用dt.Columns["比例"].Expression = ("大于200人数/总人数").ToString("0.00");
则调不通,提示错误:
1 与“string.ToString(System.IFormatProvider)”最匹配的重载方法具有一些无效参数
2 参数 1: 无法从“string”转换为“System.IFormatProvider”




望各位指点

------解决方案--------------------
.Expression只是表达式而已,不是实际计算的公式,你要处理的是界面显示的问题, 如果使用datagridview之类控件,可以到控件里设置格式
------解决方案--------------------
先把你的值用 double类型存起来..然后在这样调用 double.tostring("0.00");