1--TEST-- 2double to string conversion tests 3--INI-- 4precision=14 5--SKIPIF-- 6<?php if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); ?> 7--FILE-- 8<?php 9 10$doubles = array( 11 290000000000000000, 12 290000000000000, 13 29000000000000, 14 29000000000000.123123, 15 29000000000000.7123123, 16 29000.7123123, 17 239234242.7123123, 18 0.12345678901234567890, 19 10000000000000, 20 100000000000000, 21 1000000000000000001, 22 100000000000001, 23 10000000000, 24 999999999999999, 25 9999999999999999, 26 (float)0 27 ); 28 29foreach ($doubles as $d) { 30 var_dump((string)$d); 31} 32 33echo "Done\n"; 34?> 35--EXPECTF-- 36string(7) "2.9E+17" 37string(7) "2.9E+14" 38string(%d) "2%s" 39string(%d) "2%s" 40string(%d) "29%d" 41string(13) "29000.7123123" 42string(15) "239234242.71231" 43string(16) "0.12345678901235" 44string(14) "10000000000000" 45string(7) "1.0E+14" 46string(7) "1.0E+18" 47string(7) "1.0E+14" 48string(11) "10000000000" 49string(7) "1.0E+15" 50string(7) "1.0E+16" 51string(1) "0" 52Done 53