我如何才能防止“;可能的分数损失”;
本文关键字:损失 | 更新日期: 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;