为啥?用Linq排序的时候,int 类型字段可以.但是 float类型不行?何解

为何?用Linq排序的时候,int 类型字段可以...但是 float类型不行?何解?
//先上我的代码吧(这个可以排序):
//按奖金的升序排序.
        void OrderDataByPriceAscending(object sender, EventArgs e) {
            var sorted = from employee in set.Tables["T_Employee"].AsEnumerable()
                         orderby employee.Field<int>("FAge") ascending
                         select employee;
            dataGV.DataSource = sorted.AsDataView();
        }


//(这个不可以排序)
//按奖金的升序排序.
        void OrderDataByPriceAscending(object sender, EventArgs e) {
            var sorted = from employee in set.Tables["T_Employee"].AsEnumerable()
                         orderby employee.Field<float>("FPrice") ascending
                         select employee;
            dataGV.DataSource = sorted.AsDataView();
        }

报错:
Specified cast is not valid.
大家看图就知道了,我的字段"FPrice"明明是 float 怎么说格式转换的时候出问题?

运行界面:
为啥?用Linq排序的时候,int 类型字段可以.但是 float类型不行?何解
字段定义:
为啥?用Linq排序的时候,int 类型字段可以.但是 float类型不行?何解

------解决方案--------------------
数据库的float和C#里的float也不是一个float啊
------解决方案--------------------