2016-04-08 11 views
-1

Ich brauche etwas Hilfe bei der Division einer Zahl (Währung) durch einen Divisor, so dass ich am Ende mit geraden Teilen, und alle übrig gebliebenen Cent muss auch geteilt werden. Also für ein Beispiel 500/9 = 55.555555555555556, das ist 55.55 mit 0,05 übrig zu sein unter den ersten 5 Ergebnissen. Ich möchte mitDivision von Zahlen mit Dezimalzahlen gleichmäßig

55,56
55,56
55,56
55,56
55,56
55,55
55,55
55,55
55,55

bis Ende

Dies ist eine ähnliche Lösung, die ich gefunden divide number with decimals javascript aber dieser fügt das hinzu Wechsel zum letzten Ergebnis.

Antwort

0

werfen Sie einen Blick

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

Thanks a lot, das ist genau das, was ich suchte !!! –

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) 

dies ist eher eine mathematische Frage als eine Programmierung eines .. https://jsfiddle.net/ttz0jsgr/

Verwandte Themen