3v4l.org

run code in 300+ PHP versions simultaneously
<?php function mickmackusa($number, $decimals = 2, $dec_point = ',', $thousands_sep = ' ') { $number = number_format($number, min(5, $decimals), $dec_point, $thousands_sep); // round to decimal max return preg_replace("~".$dec_point."\d{".min(2, $decimals)."}[^0]*\K0+$~", '', $number); // trim zeros (if any, beyond minimum allowance) from right side of decimal character } function dersy($number, $decimals=2, $dec_point = ',', $thousands_sep = ' ') { $decimals = (int)$decimals; if($decimals > 5) { $decimals = 5; //Maximum decimals limit.. } $number = number_format((float)$number, $decimals, $dec_point, $thousands_sep); if(strpos($number, $dec_point) === false) { return $number; //No decimal values.. } $splArr = explode($dec_point, $number); $split = array_reverse(str_split($splArr[1])); foreach($split as $cleanNum) { if($decimals > 2 && $cleanNum === '0') { //Keep minimum two decimals. $number = substr($number, 0, -1); $decimals--; } else { break; //Found a non zero number. } } return rtrim($number,$dec_point); } $test = [ '1.01', '1.044', '0.240000', '0.200', '0.24540', '0.24546', '6500.00', '3760.54', '3760.000000000', '0.04000', '1.000000', '1.000005' ]; for ($x=0; $x<7; ++$x) { foreach ($test as $number) { $mickmackusa = mickmackusa($number, $x); $dersy = dersy($number, $x); echo "$number & $x -> Assert: $mickmackusa (Expect: $dersy) "; if ($mickmackusa === $dersy) { echo "IDENTICAL\n"; } else { echo "FAILURE\n"; } } }

Abusive script

This script was stopped while abusing our resources


preferences:
34.83 ms | 413 KiB | 5 Q