1--TEST-- 2Test sprintf() function : usage variations - scientific formats with float values 3--FILE-- 4<?php 5/* Prototype : string sprintf(string $format [, mixed $arg1 [, mixed ...]]) 6 * Description: Return a formatted string 7 * Source code: ext/standard/formatted_print.c 8*/ 9 10echo "*** Testing sprintf() : scientific formats with float values ***\n"; 11 12// array of float values 13$float_values = array( 14 -2147483649, 15 2147483648, 16 -0x80000001, // float value, beyond max negative int 17 0x800000001, // float value, beyond max positive int 18 020000000001, // float value, beyond max positive int 19 -020000000001, // float value, beyond max negative int 20 0.0, 21 -0.1, 22 1.0, 23 1e5, 24 -1e5, 25 -1e5, 26 +1e5, 27 1e+5, 28 -1e-5, 29 1E8, 30 -1E9, 31 10.0000000000000000005, 32 10.5e+5 33); 34 35// array of scientific formats 36$scientific_formats = array( 37 "%e", "%he", "%le", 38 "%Le", " %e", "%e ", 39 "\t%e", "\n%e", "%4e", 40 "%30e", "%[0-1]", "%*e" 41); 42 43 44$count = 1; 45foreach($float_values as $float_value) { 46 echo "\n-- Iteration $count --\n"; 47 48 foreach($scientific_formats as $format) { 49 var_dump( sprintf($format, $float_value) ); 50 } 51 $count++; 52}; 53 54echo "Done"; 55?> 56--EXPECTF-- 57*** Testing sprintf() : scientific formats with float values *** 58 59-- Iteration 1 -- 60string(12) "-2.147484e+9" 61string(1) "e" 62string(12) "-2.147484e+9" 63string(1) "e" 64string(13) " -2.147484e+9" 65string(13) "-2.147484e+9 " 66string(13) " -2.147484e+9" 67string(13) " 68-2.147484e+9" 69string(12) "-2.147484e+9" 70string(30) " -2.147484e+9" 71string(4) "0-1]" 72string(1) "e" 73 74-- Iteration 2 -- 75string(11) "2.147484e+9" 76string(1) "e" 77string(11) "2.147484e+9" 78string(1) "e" 79string(12) " 2.147484e+9" 80string(12) "2.147484e+9 " 81string(12) " 2.147484e+9" 82string(12) " 832.147484e+9" 84string(11) "2.147484e+9" 85string(30) " 2.147484e+9" 86string(4) "0-1]" 87string(1) "e" 88 89-- Iteration 3 -- 90string(12) "-2.147484e+9" 91string(1) "e" 92string(12) "-2.147484e+9" 93string(1) "e" 94string(13) " -2.147484e+9" 95string(13) "-2.147484e+9 " 96string(13) " -2.147484e+9" 97string(13) " 98-2.147484e+9" 99string(12) "-2.147484e+9" 100string(30) " -2.147484e+9" 101string(4) "0-1]" 102string(1) "e" 103 104-- Iteration 4 -- 105string(12) "3.435974e+10" 106string(1) "e" 107string(12) "3.435974e+10" 108string(1) "e" 109string(13) " 3.435974e+10" 110string(13) "3.435974e+10 " 111string(13) " 3.435974e+10" 112string(13) " 1133.435974e+10" 114string(12) "3.435974e+10" 115string(30) " 3.435974e+10" 116string(4) "0-1]" 117string(1) "e" 118 119-- Iteration 5 -- 120string(11) "2.147484e+9" 121string(1) "e" 122string(11) "2.147484e+9" 123string(1) "e" 124string(12) " 2.147484e+9" 125string(12) "2.147484e+9 " 126string(12) " 2.147484e+9" 127string(12) " 1282.147484e+9" 129string(11) "2.147484e+9" 130string(30) " 2.147484e+9" 131string(4) "0-1]" 132string(1) "e" 133 134-- Iteration 6 -- 135string(12) "-2.147484e+9" 136string(1) "e" 137string(12) "-2.147484e+9" 138string(1) "e" 139string(13) " -2.147484e+9" 140string(13) "-2.147484e+9 " 141string(13) " -2.147484e+9" 142string(13) " 143-2.147484e+9" 144string(12) "-2.147484e+9" 145string(30) " -2.147484e+9" 146string(4) "0-1]" 147string(1) "e" 148 149-- Iteration 7 -- 150string(11) "0.000000e+0" 151string(1) "e" 152string(11) "0.000000e+0" 153string(1) "e" 154string(12) " 0.000000e+0" 155string(12) "0.000000e+0 " 156string(12) " 0.000000e+0" 157string(12) " 1580.000000e+0" 159string(11) "0.000000e+0" 160string(30) " 0.000000e+0" 161string(4) "0-1]" 162string(1) "e" 163 164-- Iteration 8 -- 165string(12) "-1.000000e-1" 166string(1) "e" 167string(12) "-1.000000e-1" 168string(1) "e" 169string(13) " -1.000000e-1" 170string(13) "-1.000000e-1 " 171string(13) " -1.000000e-1" 172string(13) " 173-1.000000e-1" 174string(12) "-1.000000e-1" 175string(30) " -1.000000e-1" 176string(4) "0-1]" 177string(1) "e" 178 179-- Iteration 9 -- 180string(11) "1.000000e+0" 181string(1) "e" 182string(11) "1.000000e+0" 183string(1) "e" 184string(12) " 1.000000e+0" 185string(12) "1.000000e+0 " 186string(12) " 1.000000e+0" 187string(12) " 1881.000000e+0" 189string(11) "1.000000e+0" 190string(30) " 1.000000e+0" 191string(4) "0-1]" 192string(1) "e" 193 194-- Iteration 10 -- 195string(11) "1.000000e+5" 196string(1) "e" 197string(11) "1.000000e+5" 198string(1) "e" 199string(12) " 1.000000e+5" 200string(12) "1.000000e+5 " 201string(12) " 1.000000e+5" 202string(12) " 2031.000000e+5" 204string(11) "1.000000e+5" 205string(30) " 1.000000e+5" 206string(4) "0-1]" 207string(1) "e" 208 209-- Iteration 11 -- 210string(12) "-1.000000e+5" 211string(1) "e" 212string(12) "-1.000000e+5" 213string(1) "e" 214string(13) " -1.000000e+5" 215string(13) "-1.000000e+5 " 216string(13) " -1.000000e+5" 217string(13) " 218-1.000000e+5" 219string(12) "-1.000000e+5" 220string(30) " -1.000000e+5" 221string(4) "0-1]" 222string(1) "e" 223 224-- Iteration 12 -- 225string(12) "-1.000000e+5" 226string(1) "e" 227string(12) "-1.000000e+5" 228string(1) "e" 229string(13) " -1.000000e+5" 230string(13) "-1.000000e+5 " 231string(13) " -1.000000e+5" 232string(13) " 233-1.000000e+5" 234string(12) "-1.000000e+5" 235string(30) " -1.000000e+5" 236string(4) "0-1]" 237string(1) "e" 238 239-- Iteration 13 -- 240string(11) "1.000000e+5" 241string(1) "e" 242string(11) "1.000000e+5" 243string(1) "e" 244string(12) " 1.000000e+5" 245string(12) "1.000000e+5 " 246string(12) " 1.000000e+5" 247string(12) " 2481.000000e+5" 249string(11) "1.000000e+5" 250string(30) " 1.000000e+5" 251string(4) "0-1]" 252string(1) "e" 253 254-- Iteration 14 -- 255string(11) "1.000000e+5" 256string(1) "e" 257string(11) "1.000000e+5" 258string(1) "e" 259string(12) " 1.000000e+5" 260string(12) "1.000000e+5 " 261string(12) " 1.000000e+5" 262string(12) " 2631.000000e+5" 264string(11) "1.000000e+5" 265string(30) " 1.000000e+5" 266string(4) "0-1]" 267string(1) "e" 268 269-- Iteration 15 -- 270string(12) "-1.000000e-5" 271string(1) "e" 272string(12) "-1.000000e-5" 273string(1) "e" 274string(13) " -1.000000e-5" 275string(13) "-1.000000e-5 " 276string(13) " -1.000000e-5" 277string(13) " 278-1.000000e-5" 279string(12) "-1.000000e-5" 280string(30) " -1.000000e-5" 281string(4) "0-1]" 282string(1) "e" 283 284-- Iteration 16 -- 285string(11) "1.000000e+8" 286string(1) "e" 287string(11) "1.000000e+8" 288string(1) "e" 289string(12) " 1.000000e+8" 290string(12) "1.000000e+8 " 291string(12) " 1.000000e+8" 292string(12) " 2931.000000e+8" 294string(11) "1.000000e+8" 295string(30) " 1.000000e+8" 296string(4) "0-1]" 297string(1) "e" 298 299-- Iteration 17 -- 300string(12) "-1.000000e+9" 301string(1) "e" 302string(12) "-1.000000e+9" 303string(1) "e" 304string(13) " -1.000000e+9" 305string(13) "-1.000000e+9 " 306string(13) " -1.000000e+9" 307string(13) " 308-1.000000e+9" 309string(12) "-1.000000e+9" 310string(30) " -1.000000e+9" 311string(4) "0-1]" 312string(1) "e" 313 314-- Iteration 18 -- 315string(11) "1.000000e+1" 316string(1) "e" 317string(11) "1.000000e+1" 318string(1) "e" 319string(12) " 1.000000e+1" 320string(12) "1.000000e+1 " 321string(12) " 1.000000e+1" 322string(12) " 3231.000000e+1" 324string(11) "1.000000e+1" 325string(30) " 1.000000e+1" 326string(4) "0-1]" 327string(1) "e" 328 329-- Iteration 19 -- 330string(11) "1.050000e+6" 331string(1) "e" 332string(11) "1.050000e+6" 333string(1) "e" 334string(12) " 1.050000e+6" 335string(12) "1.050000e+6 " 336string(12) " 1.050000e+6" 337string(12) " 3381.050000e+6" 339string(11) "1.050000e+6" 340string(30) " 1.050000e+6" 341string(4) "0-1]" 342string(1) "e" 343Done