3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php $numbers = array( 20/3, 20/3 * 1e6, 6.66, 6.0, 60.0, 10/9, 1e20, ); $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('%.' . max($p - ceil(log10($n)), 0) . 'F', $n), '0'), '.') . "\n"; var_dump($n); echo "\n"; }
Output for 7.1.0
RAW: 6.6666666666667 EXP: 6.666666666666667 FIX: 6.6666666666667 float(6.6666666666667) RAW: 6666666.6666667 EXP: 6666666.666666667 FIX: 6666666.6666667 float(6666666.6666667) RAW: 6.66 EXP: 6.66 FIX: 6.66 float(6.66) RAW: 6 EXP: 6.0 FIX: 6 float(6) RAW: 60 EXP: 60.0 FIX: 60 float(60) RAW: 1.1111111111111 EXP: 1.1111111111111112 FIX: 1.1111111111111 float(1.1111111111111) RAW: 1.0E+20 EXP: 1.0E+20 FIX: 1 float(1.0E+20)
Output for 7.0.14
RAW: 6.6666666666667 EXP: 6.666666666666667 FIX: 6.6666666666667 float(6.6666666666667) RAW: 6666666.6666667 EXP: 6666666.666666667 FIX: 6666666.6666667 float(6666666.6666667) RAW: 6.66 EXP: 6.6600000000000001 FIX: 6.66 float(6.66) RAW: 6 EXP: 6.0 FIX: 6 float(6) RAW: 60 EXP: 60.0 FIX: 60 float(60) RAW: 1.1111111111111 EXP: 1.1111111111111112 FIX: 1.1111111111111 float(1.1111111111111) RAW: 1.0E+20 EXP: 1.0E+20 FIX: 1 float(1.0E+20)
Output for 7.0.2 - 7.0.10
RAW: 6.6666666666667 EXP: 6.66666666666666696272614 FIX: 6.6666666666667 float(6.6666666666667) RAW: 6666666.6666667 EXP: 6666666.66666666697710752 FIX: 6666666.6666667 float(6666666.6666667) RAW: 6.66 EXP: 6.66000000000000014210855 FIX: 6.66 float(6.66) RAW: 6 EXP: 6.0 FIX: 6 float(6) RAW: 60 EXP: 60.0 FIX: 60 float(60) RAW: 1.1111111111111 EXP: 1.11111111111111116045436 FIX: 1.1111111111111 float(1.1111111111111) RAW: 1.0E+20 EXP: 100000000000000000000.0 FIX: 1 float(1.0E+20)
Output for 5.4.22 - 5.4.45, 5.5.6 - 5.6.25, 7.0.0 - 7.0.1
RAW: 6.6666666666667 EXP: 6.66666666666666696272614 FIX: 6.6666666666667 float(6.6666666666667) RAW: 6666666.6666667 EXP: 6666666.66666666697710752 FIX: 6666666.6666667 float(6666666.6666667) RAW: 6.66 EXP: 6.66000000000000014210855 FIX: 6.66 float(6.66) RAW: 6 EXP: 6 FIX: 6 float(6) RAW: 60 EXP: 60 FIX: 60 float(60) RAW: 1.1111111111111 EXP: 1.11111111111111116045436 FIX: 1.1111111111111 float(1.1111111111111) RAW: 1.0E+20 EXP: 100000000000000000000 FIX: 1 float(1.0E+20)
Output for 5.6.28
RAW: 6.6666666666667 EXP: 6.666666666666667 FIX: 6.6666666666667 float(6.6666666666667) RAW: 6666666.6666667 EXP: 6666666.666666667 FIX: 6666666.6666667 float(6666666.6666667) RAW: 6.66 EXP: 6.6600000000000001 FIX: 6.66 float(6.66) RAW: 6 EXP: 6 FIX: 6 float(6) RAW: 60 EXP: 60 FIX: 60 float(60) RAW: 1.1111111111111 EXP: 1.1111111111111112 FIX: 1.1111111111111 float(1.1111111111111) RAW: 1.0E+20 EXP: 1.0E+20 FIX: 1 float(1.0E+20)
Output for 5.2.2 - 5.4.21, 5.5.0 - 5.5.5
RAW: 6.6666666666667 EXP: 6.6666666666667 FIX: 6.6666666666667 float(6.6666666666667) RAW: 6666666.6666667 EXP: 6666666.6666667 FIX: 6666666.6666667 float(6666666.6666667) RAW: 6.66 EXP: 6.66 FIX: 6.66 float(6.66) RAW: 6 EXP: 6 FIX: 6 float(6) RAW: 60 EXP: 60 FIX: 60 float(60) RAW: 1.1111111111111 EXP: 1.1111111111111 FIX: 1.1111111111111 float(1.1111111111111) RAW: 1.0E+20 EXP: 1.0E+20 FIX: 1 float(1.0E+20)
Output for 4.3.10 - 4.4.9, 5.0.3 - 5.2.1
RAW: 6.6666666666667 EXP: 6.6666666666667 FIX: 6.6666666666667 float(6.6666666666667) RAW: 6666666.6666667 EXP: 6666666.6666667 FIX: 6666666.6666667 float(6666666.6666667) RAW: 6.66 EXP: 6.66 FIX: 6.66 float(6.66) RAW: 6 EXP: 6 FIX: 6 float(6) RAW: 60 EXP: 60 FIX: 60 float(60) RAW: 1.1111111111111 EXP: 1.1111111111111 FIX: 1.1111111111111 float(1.1111111111111) RAW: 1E+20 EXP: 1.0E+20 FIX: 1 float(1.0E+20)
Output for 4.3.3 - 4.3.9, 5.0.0 - 5.0.2
RAW: 6.6666666666667 EXP: 6.6666666666667 FIX: float(6.6666666666667) RAW: 6666666.6666667 EXP: 6666666.6666667 FIX: float(6666666.6666667) RAW: 6.66 EXP: 6.66 FIX: float(6.66) RAW: 6 EXP: 6 FIX: float(6) RAW: 60 EXP: 60 FIX: float(60) RAW: 1.1111111111111 EXP: 1.1111111111111 FIX: float(1.1111111111111) RAW: 1E+20 EXP: 1.0E+20 FIX: float(1.0E+20)
Output for 4.3.0 - 4.3.2
RAW: 6.6666666666667 EXP: 6.6666666666667 FIX: float(6.6666666666667) RAW: 6666666.6666667 EXP: 6666666.6666667 FIX: float(6666666.6666667) RAW: 6.66 EXP: 6.66 FIX: float(6.66) RAW: 6 EXP: 6 FIX: float(6) RAW: 60 EXP: 60 FIX: float(60) RAW: 1.1111111111111 EXP: 1.1111111111111 FIX: float(1.1111111111111) RAW: 1E+20 EXP: 1.E+20 FIX: float(1.E+20)