我如何才能防止“;可能的分数损失”;

本文关键字:损失 | 更新日期: 2023-09-27 18:26:28

使用此代码(QtyShipped和QtyOrdered是int,_percentageOfQtyShiped是双):

_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的警告,"分数可能丢失"

然而,与Resharper通常的方法相反,它没有提供修复它的方法(我得到的不是标记代码行凹槽中的黄色灯泡,而是灰色扳手);那么,我需要对这个代码做什么更改来防止"分数可能丢失"呢?

更新

我使用了特工人#1666620的代码,乘以100得到了62.5而不是0.625的vals,就像这样:

double _percentageOfQtyShipped = 0.0;
if ((frbdcbl.QtyShipped != 0) && (frbdcbl.QtyOrdered != 0))
{
    _percentageOfQtyShipped = (frbdcbl.QtyShipped / (double)frbdcbl.QtyOrdered)*100;
}

我如何才能防止“;可能的分数损失”;

当你除以两个int时,结果也是一个int,所以你失去了分数。然后将得到的整数值分配给您的double。为了解决这个问题,您需要将其中一个int强制转换为double。

_percentageOfQtyShipped = frbdcbl.QtyShipped/(double)frbdcbl.QtyOrdered;