dval_to_lval_32.phpt 663 B

1234567891011121314151617181920212223242526272829303132
  1. --TEST--
  2. zend_dval_to_lval preserves low bits (32 bit long)
  3. --SKIPIF--
  4. <?php
  5. if (PHP_INT_SIZE != 4)
  6. die("skip for machines with 32-bit longs");
  7. ?>
  8. --FILE--
  9. <?php
  10. /* test doubles around -4e21 */
  11. $values = [
  12. -4000000000000001048576.,
  13. -4000000000000000524288.,
  14. -4000000000000000000000.,
  15. -3999999999999999475712.,
  16. -3999999999999998951424.,
  17. ];
  18. /* see if we're rounding negative numbers right */
  19. $values[] = -2147483649.8;
  20. foreach ($values as $v) {
  21. var_dump((int)$v);
  22. }
  23. ?>
  24. --EXPECT--
  25. int(-2056257536)
  26. int(-2055733248)
  27. int(-2055208960)
  28. int(-2054684672)
  29. int(-2054160384)
  30. int(2147483647)