c# - 我怎样才能防止 "possible loss of fraction"?

标签 c# resharper fractions

使用此代码(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/

相关文章:

c# - 右侧模糊的 WPF 列表框边框

c# - 在 dotPeek 中反编译 .NET Framework v4.5 可执行文件 "not .NET assembly file"但可执行文件运行正常

c# - 当 Resharper 显示 'Failed to modify Documents' 时,我需要一个解决方法。有谁知道它为什么这样做以及如何解决它?

Javascript 函数无法正常工作的问题(它将分数转换为小数)

Python 代数分数

C# 4.0 - 如何处理可选的字符串参数

c# - 如何将 ViewModel 属性绑定(bind)到转换器中的依赖属性

c# - 在 Visual Studio 中实例化对象的快捷方式

visual-studio - ReSharper 5.1 无法从任何地方导航到类型

python - 我可以从 python 中的数字中得到分数吗?