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, 5)).PHP_EOL; }
Output for 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 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.0000000000000000000000000000000000000000000000000000000010000 0.00212 0.000000000010000 2.11765 999.00000 0.10000 0.00000 0.00000 0.00000

preferences:
80.35 ms | 408 KiB | 5 Q