正如标题所描述的那样,我有一组对象 - 称它们为“分配” - 包含一个描述和一个数字。集合中的所有数字加起来等于100%,但出于显示目的,有时会四舍五入到整数百分比。在某些极端情况下,当我将数字舍入后,可能会得到99%。
例如:
请求的解决方案并不完美,但可以使用。需要找到最高的要舍去的数字,并将其向上取整。在上面的例子中,1.42%在取整后会变成2%。编辑:所谓“最高的要舍去的数字”,是指被舍去的数字最大的那个。因此,在1.42%中,0.42被舍去,而在65.23中,只有0.23被舍去。 现在看一下代码,我有一个类。
例如:
Description | Actual | Rounded
===============================
Allocation A | 65.23% | 65%
Allocation B | 25.40% | 25%
Allocation C | 7.95% | 8%
Allocation D | 1.42% | 1%
===============================
Total | 100% | 99% (Bad!)
请求的解决方案并不完美,但可以使用。需要找到最高的要舍去的数字,并将其向上取整。在上面的例子中,1.42%在取整后会变成2%。编辑:所谓“最高的要舍去的数字”,是指被舍去的数字最大的那个。因此,在1.42%中,0.42被舍去,而在65.23中,只有0.23被舍去。 现在看一下代码,我有一个类。
public class Allocation
{
public string Description {get;set;}
public doubel Percentage {get;set;}
}
这些数据被保存在一个 IEnumerable<Allocation>
中。因此,可能需要使用 LINQ 来确定哪个是要四舍五入的数据。或者更具体地说,如何生成一个新的 IEnumerable<Allocation>
来四舍五入。
如果有任何其他建议,始终使四舍五入的百分比等于 100%,那就更好了!