从Decimal到Float的转换

时间:2011-04-22 16:50:57

标签: c# asp.net casting floating-point decimal

我正在做一些数学计算。这是我的代码:

   decimal FirstYr = decimal.Round((first / second), 5);

如果我通过first = 20second = 34,我会在 FirstYr 中获得 0.58824 的值。哪个好。现在我在 LINQ

中进行此计算
   ev.HiComm = (float)(FirstYr * 100);

HiComm 数据库中浮动,上面的计算是通过值: 58.824001312255859

我不想要它。我想要在我的ev.HiComm = 58.824

我在这里做错了什么?

2 个答案:

答案 0 :(得分:3)

如果您想要在该点之后的3个位置,则必须将您的sql字段更改为decimal(x,3),其中x为3加上小数点前您需要的最大位置。 float无法存储您想要的确切值。

答案 1 :(得分:0)

它背后的代码就是这样的:

 decimal FirstYr = decimal.Round((first / second), 5)*100;
 ev.HiComm = (double)FirstYr ;

感谢你的所有建议!