Inspirován řešením od Clarka Moodyho přikládám zdrojový kód v PHP využitelný jak pro eshopy tak pro nacenění digitálních služeb.
Jde o to, že se cena mění v určitých rozsazích a nemění se při každé drobné změně kurzu. Parametry si můžete navolit nakolik bude cena “zaokrouhlena” anebo naopak bude sledovat přesně vývoj kurzu.
Původní článek: https://rtbtc.com/support/platform/pricing/
$p = 1.5; // base price for the service, p, denominated in CZK
$b = 0.2;
$f = ($p + $b) / ($p - $b);
echo "Faktor $f<br /><br />";
for ($r = 100; $r<= 4000; $r = $r+100) {
$c = 0.001; // cost of service in btc
while (($c * $r) < ($p - $b))
$c = $c * $f;
while (($c * $r) > ($p + $b))
$c = $c / $f;
echo "kurz: $r - cena: $c (rounded ".smart_round($c).")<br />";
}
function smart_round($number, $digits = 8) { // round numbers to nice one but losing max 0.1%
$roundednumber = $number;
while ($digits > 0) {
$new = round($number, $digits);
if (abs(($new - $number) / $number) > 0.001) {
return $roundednumber;
}
$digits--;
$roundednumber = $new;
}
return $roundednumber;
}