3v4l.org

run code in 300+ PHP versions simultaneously
<?php printf("%0.17f", (0.1 + 0.2) ); echo PHP_EOL; $t = floatval(sprintf("%0.17f", (0.1 + 0.2) )); echo $t; echo PHP_EOL; printf("%0.17f", $t ); echo PHP_EOL; echo "Precision: " . ini_get('precision') . PHP_EOL; echo (0.1 + 0.2) . PHP_EOL; echo ((0.1 + 0.2) === 0.3 ? 'true' : 'false') . PHP_EOL; ini_set('precision', 17); echo "Precision: " . ini_get('precision') . PHP_EOL; echo (0.1 + 0.2) . PHP_EOL; echo ((0.1 + 0.2) === 0.3 ? 'true' : 'false') . PHP_EOL; ini_set('precision', 33); echo "Precision: " . ini_get('precision') . PHP_EOL; echo (0.1 + 0.2) . PHP_EOL; echo ((0.1 + 0.2) === 0.3 ? 'true' : 'false') . PHP_EOL;
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 28
Branch analysis from position: 26
1 jumps found. (Code = 42) Position 1 = 29
Branch analysis from position: 29
2 jumps found. (Code = 43) Position 1 = 43, Position 2 = 45
Branch analysis from position: 43
1 jumps found. (Code = 42) Position 1 = 46
Branch analysis from position: 46
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 62
Branch analysis from position: 60
1 jumps found. (Code = 42) Position 1 = 63
Branch analysis from position: 63
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 62
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 45
2 jumps found. (Code = 43) Position 1 = 60, Position 2 = 62
Branch analysis from position: 60
Branch analysis from position: 62
Branch analysis from position: 28
2 jumps found. (Code = 43) Position 1 = 43, Position 2 = 45
Branch analysis from position: 43
Branch analysis from position: 45
filename:       /in/qP1kI
function name:  (null)
number of ops:  66
compiled vars:  !0 = $t
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'printf'
          1        SEND_VAL                                                 '%250.17f'
          2        SEND_VAL                                                 0.3
          3        DO_ICALL                                                 
    4     4        ECHO                                                     '%0A'
    6     5        INIT_FCALL                                               'sprintf'
          6        SEND_VAL                                                 '%250.17f'
          7        SEND_VAL                                                 0.3
          8        DO_ICALL                                         $2      
          9        CAST                                          5  ~3      $2
         10        ASSIGN                                                   !0, ~3
    8    11        ECHO                                                     !0
    9    12        ECHO                                                     '%0A'
   11    13        INIT_FCALL                                               'printf'
         14        SEND_VAL                                                 '%250.17f'
         15        SEND_VAR                                                 !0
         16        DO_ICALL                                                 
   12    17        ECHO                                                     '%0A'
   14    18        INIT_FCALL                                               'ini_get'
         19        SEND_VAL                                                 'precision'
         20        DO_ICALL                                         $6      
         21        CONCAT                                           ~7      'Precision%3A+', $6
         22        CONCAT                                           ~8      ~7, '%0A'
         23        ECHO                                                     ~8
   15    24        ECHO                                                     '0.3%0A'
   16    25      > JMPZ                                                     <false>, ->28
         26    >   QM_ASSIGN                                        ~9      'true'
         27      > JMP                                                      ->29
         28    >   QM_ASSIGN                                        ~9      'false'
         29    >   CONCAT                                           ~10     ~9, '%0A'
         30        ECHO                                                     ~10
   18    31        INIT_FCALL                                               'ini_set'
         32        SEND_VAL                                                 'precision'
         33        SEND_VAL                                                 17
         34        DO_ICALL                                                 
   19    35        INIT_FCALL                                               'ini_get'
         36        SEND_VAL                                                 'precision'
         37        DO_ICALL                                         $12     
         38        CONCAT                                           ~13     'Precision%3A+', $12
         39        CONCAT                                           ~14     ~13, '%0A'
         40        ECHO                                                     ~14
   20    41        ECHO                                                     '0.3%0A'
   21    42      > JMPZ                                                     <false>, ->45
         43    >   QM_ASSIGN                                        ~15     'true'
         44      > JMP                                                      ->46
         45    >   QM_ASSIGN                                        ~15     'false'
         46    >   CONCAT                                           ~16     ~15, '%0A'
         47        ECHO                                                     ~16
   23    48        INIT_FCALL                                               'ini_set'
         49        SEND_VAL                                                 'precision'
         50        SEND_VAL                                                 33
         51        DO_ICALL                                                 
   24    52        INIT_FCALL                                               'ini_get'
         53        SEND_VAL                                                 'precision'
         54        DO_ICALL                                         $18     
         55        CONCAT                                           ~19     'Precision%3A+', $18
         56        CONCAT                                           ~20     ~19, '%0A'
         57        ECHO                                                     ~20
   25    58        ECHO                                                     '0.3%0A'
   26    59      > JMPZ                                                     <false>, ->62
         60    >   QM_ASSIGN                                        ~21     'true'
         61      > JMP                                                      ->63
         62    >   QM_ASSIGN                                        ~21     'false'
         63    >   CONCAT                                           ~22     ~21, '%0A'
         64        ECHO                                                     ~22
         65      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
162.71 ms | 1400 KiB | 21 Q