C# 将数据行值强制转换为浮点

C# 将数据行值强制转换为浮点,c#,casting,datarow,C#,Casting,Datarow,我使用的是DataRow,我想将行中的每个值除以一个数字(取自同一行的单元格)。我一直在寻找将值转换为浮点值的方法,比如从线程转换,但是转换给我“指定的转换无效”错误 List tblsol=new List(); DataTable now=tblsol.Last(); while(true) { DataRow fb=now.Rows[v]; DataRow fb2=now.Rows[w]; float akun=(float)fb[fb.Table.Columns.Count-1]/ (浮

我使用的是
DataRow
,我想将行中的每个值除以一个数字(取自同一行的单元格)。我一直在寻找将值转换为浮点值的方法,比如从线程转换,但是转换给我“指定的转换无效”错误

List tblsol=new List();
DataTable now=tblsol.Last();
while(true)
{
DataRow fb=now.Rows[v];
DataRow fb2=now.Rows[w];
float akun=(float)fb[fb.Table.Columns.Count-1]/
(浮动)fb[u];
if(akun>(float)fb2[fb2.Table.Columns.Count-1]/
(浮动)fb2[u])
{
如果(w==now.Rows.Count-1){v=w;break;}
else{v++;w++;}
}
其他的
{
如果(w==now.Rows.Count-1){break;}
else{w++;}
}
}
DataRow bk=now.Rows[v];
float angkun=转换为单个(bk[u]);
for(int dc=1;dc
我使用了两种方法将值转换为浮点值(使用
convert.toSingle
和casting),但这两种方法都给了我错误。还有什么我能做的吗?或者我的代码中是否有错误?

p、 s.
tblSol
不是空的,并且所有变量都已声明。

尝试float.Parse,但需要将数据行转换为动态/字符串类型才能兼容:

var test = (dynamic)fb[fb.Table.Columns.Count - 1];
float boat = float.Parse(test);

或者使用类似的
float.Parse

将其转换为
String
后,您可以这样尝试

float akun = float.Parse(fb[fb.Table.Columns.Count - 1].ToString()) /
        float.Parse(fb[u].ToString());

如我在评论中所述,首先尝试将相关列强制转换为
Decimal
。它是从DataRow实例的列访问数据时显式支持的数据类型之一;有效类型列在

中。您是否尝试过先将列值强制转换为十进制?十进制有效,谢谢!令人惊叹的。我会把它作为一个答案。不确定这是否是问题所在:)
float akun = float.Parse(fb[fb.Table.Columns.Count - 1].ToString()) /
        float.Parse(fb[u].ToString());