double_to_string_64bit.phpt 1.4 KB

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