On Steem Blockchain, the reputation can be formatted in a logarithmetic (base 10) scale. Given recently, my PR to fix the reputation formatter in SteemJS is merged, I also translate this to PHP which I need.
1 2 3 4 5 6 7 8 9 | function formatReputation($rep) { if (!$rep) return 25; $neg = $rep < 0; $rep = (string)$rep; $rep = $neg ? substr($rep, 1) : $rep; $v = log10(($rep > 0 ? $rep : -$rep) - 10) - 9; $v = $neg ? -$v : $v; return round($v * 9 + 25, 3); } |
function formatReputation($rep) { if (!$rep) return 25; $neg = $rep < 0; $rep = (string)$rep; $rep = $neg ? substr($rep, 1) : $rep; $v = log10(($rep > 0 ? $rep : -$rep) - 10) - 9; $v = $neg ? -$v : $v; return round($v * 9 + 25, 3); }
Some Example usages:
1 2 3 4 5 6 | echo formatReputation(95832978796820) . "\n"; echo formatReputation(10004392664120) . "\n"; echo formatReputation(30999525306309) . "\n"; echo formatReputation(-37765258368568) . "\n"; echo formatReputation(334486135407077) . "\n"; echo formatReputation(0) . "\n"; |
echo formatReputation(95832978796820) . "\n"; echo formatReputation(10004392664120) . "\n"; echo formatReputation(30999525306309) . "\n"; echo formatReputation(-37765258368568) . "\n"; echo formatReputation(334486135407077) . "\n"; echo formatReputation(0) . "\n";
The above PHP code should output the following values (you can use them to unit test the function):
69.834 61.002 65.422 -16.194 74.719 25
–EOF (The Ultimate Computing & Technology Blog) —
GD Star Rating
loading...
230 wordsloading...
Last Post: Dynamic Programming Algorithm to Compute the Max Dot Product of Two Subsequences
Next Post: SQLite Explan: Why the Most Popular Accounts Query is Slow compared to Most Blocked Accounts Query?