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

Output for git.master, git.master_jit, rfc.property-hooks
1.01 & 0 -> Assert: 1 (Expect: 1) IDENTICAL 1.044 & 0 -> Assert: 1 (Expect: 1) IDENTICAL 0.240000 & 0 -> Assert: 0 (Expect: 0) IDENTICAL 0.200 & 0 -> Assert: 0 (Expect: 0) IDENTICAL 0.24540 & 0 -> Assert: 0 (Expect: 0) IDENTICAL 0.24546 & 0 -> Assert: 0 (Expect: 0) IDENTICAL 6500.00 & 0 -> Assert: 6 500 (Expect: 6 500) IDENTICAL 3760.54 & 0 -> Assert: 3 761 (Expect: 3 761) IDENTICAL 3760.000000000 & 0 -> Assert: 3 760 (Expect: 3 760) IDENTICAL 0.04000 & 0 -> Assert: 0 (Expect: 0) IDENTICAL 1.000000 & 0 -> Assert: 1 (Expect: 1) IDENTICAL 1.000005 & 0 -> Assert: 1 (Expect: 1) IDENTICAL 1.01 & 1 -> Assert: 1,0 (Expect: 1,0) IDENTICAL 1.044 & 1 -> Assert: 1,0 (Expect: 1,0) IDENTICAL 0.240000 & 1 -> Assert: 0,2 (Expect: 0,2) IDENTICAL 0.200 & 1 -> Assert: 0,2 (Expect: 0,2) IDENTICAL 0.24540 & 1 -> Assert: 0,2 (Expect: 0,2) IDENTICAL 0.24546 & 1 -> Assert: 0,2 (Expect: 0,2) IDENTICAL 6500.00 & 1 -> Assert: 6 500,0 (Expect: 6 500,0) IDENTICAL 3760.54 & 1 -> Assert: 3 760,5 (Expect: 3 760,5) IDENTICAL 3760.000000000 & 1 -> Assert: 3 760,0 (Expect: 3 760,0) IDENTICAL 0.04000 & 1 -> Assert: 0,0 (Expect: 0,0) IDENTICAL 1.000000 & 1 -> Assert: 1,0 (Expect: 1,0) IDENTICAL 1.000005 & 1 -> Assert: 1,0 (Expect: 1,0) IDENTICAL 1.01 & 2 -> Assert: 1,01 (Expect: 1,01) IDENTICAL 1.044 & 2 -> Assert: 1,04 (Expect: 1,04) IDENTICAL 0.240000 & 2 -> Assert: 0,24 (Expect: 0,24) IDENTICAL 0.200 & 2 -> Assert: 0,20 (Expect: 0,20) IDENTICAL 0.24540 & 2 -> Assert: 0,25 (Expect: 0,25) IDENTICAL 0.24546 & 2 -> Assert: 0,25 (Expect: 0,25) IDENTICAL 6500.00 & 2 -> Assert: 6 500,00 (Expect: 6 500,00) IDENTICAL 3760.54 & 2 -> Assert: 3 760,54 (Expect: 3 760,54) IDENTICAL 3760.000000000 & 2 -> Assert: 3 760,00 (Expect: 3 760,00) IDENTICAL 0.04000 & 2 -> Assert: 0,04 (Expect: 0,04) IDENTICAL 1.000000 & 2 -> Assert: 1,00 (Expect: 1,00) IDENTICAL 1.000005 & 2 -> Assert: 1,00 (Expect: 1,00) IDENTICAL 1.01 & 3 -> Assert: 1,01 (Expect: 1,01) IDENTICAL 1.044 & 3 -> Assert: 1,044 (Expect: 1,044) IDENTICAL 0.240000 & 3 -> Assert: 0,24 (Expect: 0,24) IDENTICAL 0.200 & 3 -> Assert: 0,20 (Expect: 0,20) IDENTICAL 0.24540 & 3 -> Assert: 0,245 (Expect: 0,245) IDENTICAL 0.24546 & 3 -> Assert: 0,245 (Expect: 0,245) IDENTICAL 6500.00 & 3 -> Assert: 6 500,00 (Expect: 6 500,00) IDENTICAL 3760.54 & 3 -> Assert: 3 760,54 (Expect: 3 760,54) IDENTICAL 3760.000000000 & 3 -> Assert: 3 760,00 (Expect: 3 760,00) IDENTICAL 0.04000 & 3 -> Assert: 0,04 (Expect: 0,04) IDENTICAL 1.000000 & 3 -> Assert: 1,00 (Expect: 1,00) IDENTICAL 1.000005 & 3 -> Assert: 1,00 (Expect: 1,00) IDENTICAL 1.01 & 4 -> Assert: 1,01 (Expect: 1,01) IDENTICAL 1.044 & 4 -> Assert: 1,044 (Expect: 1,044) IDENTICAL 0.240000 & 4 -> Assert: 0,24 (Expect: 0,24) IDENTICAL 0.200 & 4 -> Assert: 0,20 (Expect: 0,20) IDENTICAL 0.24540 & 4 -> Assert: 0,2454 (Expect: 0,2454) IDENTICAL 0.24546 & 4 -> Assert: 0,2455 (Expect: 0,2455) IDENTICAL 6500.00 & 4 -> Assert: 6 500,00 (Expect: 6 500,00) IDENTICAL 3760.54 & 4 -> Assert: 3 760,54 (Expect: 3 760,54) IDENTICAL 3760.000000000 & 4 -> Assert: 3 760,00 (Expect: 3 760,00) IDENTICAL 0.04000 & 4 -> Assert: 0,04 (Expect: 0,04) IDENTICAL 1.000000 & 4 -> Assert: 1,00 (Expect: 1,00) IDENTICAL 1.000005 & 4 -> Assert: 1,00 (Expect: 1,00) IDENTICAL 1.01 & 5 -> Assert: 1,01 (Expect: 1,01) IDENTICAL 1.044 & 5 -> Assert: 1,044 (Expect: 1,044) IDENTICAL 0.240000 & 5 -> Assert: 0,24 (Expect: 0,24) IDENTICAL 0.200 & 5 -> Assert: 0,20 (Expect: 0,20) IDENTICAL 0.24540 & 5 -> Assert: 0,2454 (Expect: 0,2454) IDENTICAL 0.24546 & 5 -> Assert: 0,24546 (Expect: 0,24546) IDENTICAL 6500.00 & 5 -> Assert: 6 500,00 (Expect: 6 500,00) IDENTICAL 3760.54 & 5 -> Assert: 3 760,54 (Expect: 3 760,54) IDENTICAL 3760.000000000 & 5 -> Assert: 3 760,00 (Expect: 3 760,00) IDENTICAL 0.04000 & 5 -> Assert: 0,04 (Expect: 0,04) IDENTICAL 1.000000 & 5 -> Assert: 1,00 (Expect: 1,00) IDENTICAL 1.000005 & 5 -> Assert: 1,00001 (Expect: 1,00001) IDENTICAL 1.01 & 6 -> Assert: 1,01 (Expect: 1,01) IDENTICAL 1.044 & 6 -> Assert: 1,044 (Expect: 1,044) IDENTICAL 0.240000 & 6 -> Assert: 0,24 (Expect: 0,24) IDENTICAL 0.200 & 6 -> Assert: 0,20 (Expect: 0,20) IDENTICAL 0.24540 & 6 -> Assert: 0,2454 (Expect: 0,2454) IDENTICAL 0.24546 & 6 -> Assert: 0,24546 (Expect: 0,24546) IDENTICAL 6500.00 & 6 -> Assert: 6 500,00 (Expect: 6 500,00) IDENTICAL 3760.54 & 6 -> Assert: 3 760,54 (Expect: 3 760,54) IDENTICAL 3760.000000000 & 6 -> Assert: 3 760,00 (Expect: 3 760,00) IDENTICAL 0.04000 & 6 -> Assert: 0,04 (Expect: 0,04) IDENTICAL 1.000000 & 6 -> Assert: 1,00 (Expect: 1,00) IDENTICAL 1.000005 & 6 -> Assert: 1,00001 (Expect: 1,00001) IDENTICAL

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
190.17 ms | 425 KiB | 5 Q