Sliding Scale probleem
Geplaatst: 18 okt 2022, 16:58
Hallo allemaal!
Ik zit met een probleempje waar ik een formule voor had bedacht, maar ik kan me maar niet bedenken waarom hij niet werkt.
Er moet een formule komen waarmee een toeslag kan worden berekend. Bij een transactie van 1 euro is dat 1 cent, en bij een transactie van 1.000.000 euro is dat 25 euro.
De situatie is als volgt:
Een gebruiker betaalt 1 euro, daar wordt 1% vanaf gesnoept om bijvoorbeeld salarissen, onderhoud en inkoop van goederen van te betalen. Dit betekent dat 1 cent van deze transactie wordt achtergehouden.
In dit geval is dat heel makkelijk te berekenen door 1 * 1% of 1 * 0.01 in te voeren, wat 0.01 cent als resultaat geeft.
In het geval van de grootste transactie, 1.000.000 euro, is dat 1.000.000 * 0.0025% of 1.000.000 * 0.000025, wat 25 euro als resultaat geeft.
Het is in dit scenario de bedoeling dat elke euro waarmee de transactiewaarde stijgt, het percentage afneemt, tot 25 euro op 1.000.000 bereikt is. Alles onder een euro en boven een miljoen kan ik hardcoden als 1% of 25 euro.
Het verschil tussen beide percentages is 0.9975%
Iedere euro die het bedrag stijgt, houd daarom een vermindering in van 0,0000009975%
De formule die ik zelf wilde toepassen, berekent eerst het restant percentage dat moet worden toegepast op het verstuurde bedrag.
Omdat rekenen in percentages op een rekenmachine niet werkt, heb ik dat als volgt gedaan:
0.01 – ( transactiewaarde * 0,000000009975 ) = restant van het toeslagenpercentage
De uitkomst van deze som, vermenigvuldig ik met de transactiewaarde.
De som wordt om die reden:
Transactiewaarde * ( 0.01 – ( transactiewaarde * 0,000000009975 )) = toeslag
Echter werkt dit totaal niet en kan ik niet uitvinden waarom.
Althans, op een miljoen geeft hij dan netjes 25 euro aan, maar op 150.000 komt dit uit op 1276 euro, wat 100 maal te hoog is. Op lagere getallen, zoals 50 cent, is het verschil minder merkbaar, maar ook nog steeds niet accuraat.
Please help!
Ik zit met een probleempje waar ik een formule voor had bedacht, maar ik kan me maar niet bedenken waarom hij niet werkt.
Er moet een formule komen waarmee een toeslag kan worden berekend. Bij een transactie van 1 euro is dat 1 cent, en bij een transactie van 1.000.000 euro is dat 25 euro.
De situatie is als volgt:
Een gebruiker betaalt 1 euro, daar wordt 1% vanaf gesnoept om bijvoorbeeld salarissen, onderhoud en inkoop van goederen van te betalen. Dit betekent dat 1 cent van deze transactie wordt achtergehouden.
In dit geval is dat heel makkelijk te berekenen door 1 * 1% of 1 * 0.01 in te voeren, wat 0.01 cent als resultaat geeft.
In het geval van de grootste transactie, 1.000.000 euro, is dat 1.000.000 * 0.0025% of 1.000.000 * 0.000025, wat 25 euro als resultaat geeft.
Het is in dit scenario de bedoeling dat elke euro waarmee de transactiewaarde stijgt, het percentage afneemt, tot 25 euro op 1.000.000 bereikt is. Alles onder een euro en boven een miljoen kan ik hardcoden als 1% of 25 euro.
Het verschil tussen beide percentages is 0.9975%
Iedere euro die het bedrag stijgt, houd daarom een vermindering in van 0,0000009975%
De formule die ik zelf wilde toepassen, berekent eerst het restant percentage dat moet worden toegepast op het verstuurde bedrag.
Omdat rekenen in percentages op een rekenmachine niet werkt, heb ik dat als volgt gedaan:
0.01 – ( transactiewaarde * 0,000000009975 ) = restant van het toeslagenpercentage
De uitkomst van deze som, vermenigvuldig ik met de transactiewaarde.
De som wordt om die reden:
Transactiewaarde * ( 0.01 – ( transactiewaarde * 0,000000009975 )) = toeslag
Echter werkt dit totaal niet en kan ik niet uitvinden waarom.
Althans, op een miljoen geeft hij dan netjes 25 euro aan, maar op 150.000 komt dit uit op 1276 euro, wat 100 maal te hoog is. Op lagere getallen, zoals 50 cent, is het verschil minder merkbaar, maar ook nog steeds niet accuraat.
Please help!