好吧,所以我有以下问题,最好通过一个具体的例子来解释。给定一个double,x(比如说100.5)和一个int y(比如说3),我该如何将它分成(大致相等)部分并返回一个包含33,33和34.5的List。如何在java中将double分解为整数?
我希望列表中的所有元素都是整数(整数),除了最后一个。
当前代码:
private List<Double> splitIntoApproxEqualParts(double number, int numParts) {
List<Double> result = new ArrayList<Double>();
if (numParts <= 0) { return result; }
double qty = Math.floor(number/numParts);
for (int i = 0; i < numParts - 1; i++) {
result.add(qty);
}
result.add(qty + 1);
return result;
}
显然,这不适合的情况下工作,其中为NumParts <数量等情况了。
什么是最优雅的方式来做到这一点?
下面给出了答案,他们的讨论,看来这个问题没有正确定义,你的解决方案只是其中的一个。我已经投票决定关闭它,因为目前还不清楚这种行为真的需要什么。我怀疑你不了解你自己。 –
差不多等于不清楚 - 列表中的所有数字(除了最后一个)应该是相同的。 –