3v4l.org

run code in 300+ PHP versions simultaneously
<?php $numbers = array( 20/3, 20/3 * 1e6, 6.66, 6.0, 60.0, 10/9, 1000000000000000000000000000000000, ); $p = (int) ini_get('precision'); foreach ($numbers as $n) { echo 'RAW: ' . $n . "\n"; echo 'EXP: ' . var_export($n, TRUE) . "\n"; echo 'FIX: ' . rtrim(rtrim(sprintf('%.' . ($p - ceil(log10($n))) . 'F', $n), '0'), '.') . "\n"; echo "\n"; }
Output for 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
RAW: 6.6666666666667 EXP: 6.666666666666667 FIX: 6.6666666666667 RAW: 6666666.6666667 EXP: 6666666.666666667 FIX: 6666666.6666667 RAW: 6.66 EXP: 6.66 FIX: 6.66 RAW: 6 EXP: 6.0 FIX: 6 RAW: 60 EXP: 60.0 FIX: 60 RAW: 1.1111111111111 EXP: 1.1111111111111112 FIX: 1.1111111111111 RAW: 1.0E+33 EXP: 1.0E+33 Fatal error: Uncaught ValueError: Unknown format specifier "-" in /in/WFJdS:18 Stack trace: #0 /in/WFJdS(18): sprintf('%.-19F', 1.0E+33) #1 {main} thrown in /in/WFJdS on line 18
Process exited with code 255.
Output for 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.12 - 7.3.33, 7.4.0 - 7.4.33
RAW: 6.6666666666667 EXP: 6.666666666666667 FIX: 6.6666666666667 RAW: 6666666.6666667 EXP: 6666666.666666667 FIX: 6666666.6666667 RAW: 6.66 EXP: 6.66 FIX: 6.66 RAW: 6 EXP: 6.0 FIX: 6 RAW: 60 EXP: 60.0 FIX: 60 RAW: 1.1111111111111 EXP: 1.1111111111111112 FIX: 1.1111111111111 RAW: 1.0E+33 EXP: 1.0E+33 FIX: 19F
Output for 7.0.2 - 7.0.20
RAW: 6.6666666666667 EXP: 6.666666666666667 FIX: 6.6666666666667 RAW: 6666666.6666667 EXP: 6666666.666666667 FIX: 6666666.6666667 RAW: 6.66 EXP: 6.6600000000000001 FIX: 6.66 RAW: 6 EXP: 6.0 FIX: 6 RAW: 60 EXP: 60.0 FIX: 60 RAW: 1.1111111111111 EXP: 1.1111111111111112 FIX: 1.1111111111111 RAW: 1.0E+33 EXP: 9.9999999999999995E+32 FIX: 19F
Output for 5.4.22 - 5.4.45, 5.5.6 - 5.5.38, 5.6.0 - 5.6.28, 7.0.0 - 7.0.1
RAW: 6.6666666666667 EXP: 6.666666666666667 FIX: 6.6666666666667 RAW: 6666666.6666667 EXP: 6666666.666666667 FIX: 6666666.6666667 RAW: 6.66 EXP: 6.6600000000000001 FIX: 6.66 RAW: 6 EXP: 6 FIX: 6 RAW: 60 EXP: 60 FIX: 60 RAW: 1.1111111111111 EXP: 1.1111111111111112 FIX: 1.1111111111111 RAW: 1.0E+33 EXP: 9.9999999999999995E+32 FIX: 19F
Output for 5.2.2 - 5.2.17, 5.3.0 - 5.3.29, 5.4.0 - 5.4.21, 5.5.0 - 5.5.5
RAW: 6.6666666666667 EXP: 6.6666666666667 FIX: 6.6666666666667 RAW: 6666666.6666667 EXP: 6666666.6666667 FIX: 6666666.6666667 RAW: 6.66 EXP: 6.66 FIX: 6.66 RAW: 6 EXP: 6 FIX: 6 RAW: 60 EXP: 60 FIX: 60 RAW: 1.1111111111111 EXP: 1.1111111111111 FIX: 1.1111111111111 RAW: 1.0E+33 EXP: 1.0E+33 FIX: 19F
Output for 4.3.10 - 4.3.11, 4.4.0 - 4.4.9, 5.0.3 - 5.0.5, 5.1.0 - 5.1.6, 5.2.0 - 5.2.1
RAW: 6.6666666666667 EXP: 6.6666666666667 FIX: 6.6666666666667 RAW: 6666666.6666667 EXP: 6666666.6666667 FIX: 6666666.6666667 RAW: 6.66 EXP: 6.66 FIX: 6.66 RAW: 6 EXP: 6 FIX: 6 RAW: 60 EXP: 60 FIX: 60 RAW: 1.1111111111111 EXP: 1.1111111111111 FIX: 1.1111111111111 RAW: 1E+33 EXP: 1.0E+33 FIX: 19F
Output for 4.3.3 - 4.3.9, 5.0.0 - 5.0.2
RAW: 6.6666666666667 EXP: 6.6666666666667 FIX: RAW: 6666666.6666667 EXP: 6666666.6666667 FIX: RAW: 6.66 EXP: 6.66 FIX: RAW: 6 EXP: 6 FIX: RAW: 60 EXP: 60 FIX: RAW: 1.1111111111111 EXP: 1.1111111111111 FIX: RAW: 1E+33 EXP: 1.0E+33 FIX: 19F
Output for 4.3.0 - 4.3.2
RAW: 6.6666666666667 EXP: 6.6666666666667 FIX: RAW: 6666666.6666667 EXP: 6666666.6666667 FIX: RAW: 6.66 EXP: 6.66 FIX: RAW: 6 EXP: 6 FIX: RAW: 60 EXP: 60 FIX: RAW: 1.1111111111111 EXP: 1.1111111111111 FIX: RAW: 1E+33 EXP: 1.E+33 FIX: 19F

preferences:
228.56 ms | 402 KiB | 359 Q