好吧,所以我有以下問題,最好通過一個具體的例子來解釋。給定一個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 <數量等情況了。
什麼是最優雅的方式來做到這一點?
下面給出了答案,他們的討論,看來這個問題沒有正確定義,你的解決方案只是其中的一個。我已經投票決定關閉它,因爲目前還不清楚這種行爲真的需要什麼。我懷疑你不瞭解你自己。 –
差不多等於不清楚 - 列表中的所有數字(除了最後一個)應該是相同的。 –