使用此代码(QtyShipped 和 QtyOrdered 是整数,_percentageOfQtyShipped 是 double ):
_percentageOfQtyShipped = frbdcbl.QtyShipped / frbdcbl.QtyOrdered;
...我遇到了一些“div by 0”错误,所以我将其重构为:
double _percentageOfQtyShipped = 0.0;
if ((frbdcbl.QtyShipped != 0) && (frbdcbl.QtyOrdered != 0))
{
_percentageOfQtyShipped = frbdcbl.QtyShipped/frbdcbl.QtyOrdered;
}
...但现在我收到了来自 Resharper 的警告,“Possible loss of fraction”
但是,与 Resharper 通常的方法相反,它没有提供修复它的方法(我得到的是灰色 Spanner ,而不是标记代码行的排水沟中的黄色灯泡);那么我需要对此代码进行哪些更改以防止“可能丢失分数”?
更新
我使用了 Secret Agent Man #1666620 的代码,并乘以 100 得到诸如 62.5 而不是 0.625 的值,如下所示:
double _percentageOfQtyShipped = 0.0;
if ((frbdcbl.QtyShipped != 0) && (frbdcbl.QtyOrdered != 0))
{
_percentageOfQtyShipped = (frbdcbl.QtyShipped / (double)frbdcbl.QtyOrdered)*100;
}
最佳答案
当你将两个整数相除时,结果也将是一个整数,所以你丢掉了分数。然后将生成的整数值分配给您的 double 值。要解决这个问题,您需要将其中一个整数转换为 double 。
_percentageOfQtyShipped = frbdcbl.QtyShipped/(double)frbdcbl.QtyOrdered;
关于c# - 我怎样才能防止 "possible loss of fraction"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34207383/