我需要一些帮助,将一个数字(货币)除以一个除数,这样我最终得到的是零件,剩下的任何一分钱也需要分开。 因此,对于示例500/9 = 55.55555555555556,剩下0.05的55.55在前5个结果中被分配。 我想以
结束 55.56
55.56
55.56
55.56
55.56
55.55
55.55
55.55
55.55
这是我发现divide number with decimals javascript的类似解决方案 但是这个添加了最后一个结果的变化。
答案 0 :(得分:2)
var mathjunk = 500/9;
var formattedtotal = Math.floor(mathjunk*100)/100;
var realtotal = formattedtotal * 9;
var modulus = 500 - realtotal;
var diff = modulus / 5;
var first5 = formattedtotal+diff;
alert("first 5 get $"+first5+", everyone else gets $"+formattedtotal)
这更像是一个数学问题,而不是编程问题。https://jsfiddle.net/ttz0jsgr/
答案 1 :(得分:1)
看看
function distribute(money, piles){
var m = money * 100,
n = m % piles,
v = Math.floor( m / piles ) / 100,
w = Math.floor( m / piles + 1 ) / 100;
for(var i=0, out = new Array(piles); i < piles; ++i){
out[i] = i<n? w: v;
}
return out;
}
var arr = distribute(500, 9);
var sum = arr.reduce((a,b) => a+b);