3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php //$amount = number_format(9.22337203685E+18,0,'',''); $amount = 223372036849999872; $number_sep = array(); $multi = 1; $exit = false; $i = 1000; for($j=3;$j < 15 ;$j=$j+2) { switch($j) { case 3: $temp = ($amount/$i);$temp = round(($temp - floor($temp)) * 1000,2); echo $temp; if($i < $amount) { if(!$temp) { $number_sep[] = '000'; } else { $amount = $amount - $temp; $number_sep[] = str_pad(round($temp,2),3,'0',STR_PAD_LEFT); } } else { if(!$temp) { $number_sep[] = '000'; } else { $number_sep[] = str_pad(round($temp,2),3,'0',STR_PAD_LEFT); } $exit = true; } break; case $j > 3 : $temp = ($amount/$i);$temp = round(($temp - floor($temp)) * $i,0); if($i < $amount) { if(!$temp) { $number_sep[] = '00'; } else { $amount = $amount - $temp; echo $temp; $number_sep[] = $temp/($i/100); } } else { if(!$temp) { $number_sep[] = '00'; } else { $number_sep[] = $temp/($i/100); } $exit = true; }; break; } print_r($number_sep); if($exit) { break; } $i = 10 * 10 * $i; } echo implode(',',array_reverse($number_sep));
Output for 4.3.0 - 7.1.0
875Array ( [0] => 875 ) 99023Array ( [0] => 875 [1] => 99.023 ) 9900017Array ( [0] => 875 [1] => 99.023 [2] => 99.00017 ) 839999974Array ( [0] => 875 [1] => 99.023 [2] => 99.00017 [3] => 83.9999974 ) 35999999987Array ( [0] => 875 [1] => 99.023 [2] => 99.00017 [3] => 83.9999974 [4] => 35.999999987 ) 2000000000007Array ( [0] => 875 [1] => 99.023 [2] => 99.00017 [3] => 83.9999974 [4] => 35.999999987 [5] => 20.00000000007 ) 20.00000000007,35.999999987,83.9999974,99.00017,99.023,875