除非实际为100%,百分比永远不会是100%

时间:2017-01-04 12:08:15

标签: c# c#-4.0 string-formatting percentage

在报告中,我们的客户可以拥有超过10万个已检查的项目,并且在报告元数据(xml文件)中需要2个小数百分比的“检查确认”项目的数量。

但是,除非实际上一切正常,否则该数字不应为100%。由于项目数量,标准数学运算和String.Format()可以进行舍入误差。

这有一个优雅的解决方案吗?

客户接受99.99%是一个涵盖99.999999999%的特殊情况,即使它在数学上是不正确的。

重要的是,当有些项目未检出时,报告数据不会显示100%。

1 个答案:

答案 0 :(得分:2)

小助手方法有什么问题?

public double GetPercentage(int checkedOk, int total)
{
    if (checkedOk == total)
        return 100.0;

     var percentage = (100.0 * checkedOk) / total;
     return percentage > 99.99 ? 99.99: percentage;
}

我会删除神奇数字'99 .99`但你明白了。