用小数均分数

时间:2016-04-08 19:06:16

标签: javascript

我需要一些帮助,将一个数字(货币)除以一个除数,这样我最终得到的是零件,剩下的任何一分钱也需要分开。 因此,对于示例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的类似解决方案 但是这个添加了最后一个结果的变化。

2 个答案:

答案 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);