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

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

如果我传递 first = 20second = 34 ,我会在 FirstYr 中得到 0.58824 的值。这很好。现在我在我的 LINQ 中进行这个计算:
   ev.HiComm = (float)(FirstYr * 100);

HiComm 数据库 中是 float 的,上面的计算是传递值: 58.824001312255859

我不想要它。我想在我的 ev.HiComm = 58.824
我在这里做错了什么?

最佳答案

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

10-06 15:06