3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Get the decimals value * * @param $value * @param $min - min decimals * @return int */ function get_decimals($value = 0, $min = 2) { if ($value === '0.00') { return $min; } for ($i = strlen($value); $i >= $min; $i--) { if (strstr($value, '0.'.str_repeat('0', $i), true) !== false) { return $i+$min; } } return $min; } $values = [ '0.000000000000000000000000000000000000000000000000000000001', # ¯\_(ツ)_/¯ '0.002117647058', '0.00000000001', '2.117647058', '999.0', '0.1', '0.00', '0.0', '0' ]; foreach ($values as $value) { echo number_format($value, get_decimals($value)).PHP_EOL; }
Output for 5.6.0 - 5.6.40, 7.0.0 - 7.0.33, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.26, 8.4.1 - 8.4.13
0.0000000000000000000000000000000000000000000000000000000010 0.0021 0.000000000010 2.12 999.00 0.10 0.00 0.00 0.00

preferences:
104.58 ms | 408 KiB | 5 Q