2016-04-08 2 views
-1

Мне нужна помощь при делении числа (валюты) на делитель, поэтому я получаю четные части, и любые оставшиеся центы также должны быть разделены. Итак, для примера 500/9 = 55.55555555555556, это 55.55 с остатком 0.05 для того, чтобы быть пропущенным между первыми 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

гляньте

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); 
+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/

Смежные вопросы