floatval.phpt 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. --TEST--
  2. Testing floatval() and its alias doubleval() Functions
  3. --FILE--
  4. <?php
  5. /* Prototype: float floatval( mixed $var );
  6. * Description: Returns the float value of var.
  7. */
  8. echo "*** Testing floatval() with valid float values ***\n";
  9. // different valid float values
  10. $valid_floats = array(
  11. 0.0,
  12. 1.0,
  13. -1.0,
  14. 1.234,
  15. -1.234,
  16. 1.2e3,
  17. -1.2e3,
  18. 10.0000000000000000005,
  19. 10.5e+5,
  20. 1e5,
  21. -1e5,
  22. 1e-5,
  23. -1e-1,
  24. 1e+5,
  25. -1e+5,
  26. 1E5,
  27. -1E5,
  28. 1E+5,
  29. -1E+5,
  30. .5e+7,
  31. -.5e+7
  32. );
  33. /* loop to check that floatval() recognizes different
  34. float values, expected output:float value for valid floating point number */
  35. foreach ($valid_floats as $value ) {
  36. var_dump( floatval($value) );
  37. }
  38. echo "\n*** Testing doubleval() with valid float values ***\n";
  39. /* loop to check that doubleval() also recognizes different
  40. float values, expected output:float value for valid floating point number */
  41. foreach ($valid_floats as $value ) {
  42. var_dump( doubleval($value) );
  43. }
  44. echo "\n*** Testing floatval() on non floating types ***\n";
  45. // get a resource type variable
  46. $fp = fopen (__FILE__, "r");
  47. fclose($fp);
  48. $dfp = opendir ( dirname(__FILE__) );
  49. closedir($dfp);
  50. // other types in an array
  51. $not_float_types = array (
  52. -2147483648, // max negative integer value
  53. 2147483648, // max positive integer value
  54. $fp, // resource
  55. $dfp,
  56. "0.0", // string
  57. "1.0",
  58. "-1.3e3",
  59. "bob-1.3e3",
  60. "10 Some dollars",
  61. "10.2 Some Dollars",
  62. "10.0 dollar" + 1,
  63. "10.0 dollar" + 1.0,
  64. "",
  65. true,
  66. NULL,
  67. null,
  68. );
  69. /* loop through the $not_float_types to see working of
  70. floatval() on non float types, expected output: float value valid floating point numbers */
  71. foreach ($not_float_types as $type ) {
  72. var_dump( floatval($type) );
  73. }
  74. echo "\n*** Testing doubleval() on non floating types ***\n";
  75. /* loop through the $not_float_types to see working of
  76. doubleval() on non float types, expected output: float value valid floating point numbers */
  77. foreach ($not_float_types as $type ) {
  78. var_dump( doubleval($type) );
  79. }
  80. echo "\n*** Testing error conditions ***\n";
  81. //Zero argument
  82. var_dump( floatval() );
  83. var_dump( doubleval() );
  84. //arguments more than expected
  85. var_dump( floatval(TRUE, FALSE) );
  86. var_dump( doubleval(TRUE, FALSE) );
  87. echo "\nDone\n";
  88. ?>
  89. --EXPECTF--
  90. *** Testing floatval() with valid float values ***
  91. float(0)
  92. float(1)
  93. float(-1)
  94. float(1.234)
  95. float(-1.234)
  96. float(1200)
  97. float(-1200)
  98. float(10)
  99. float(1050000)
  100. float(100000)
  101. float(-100000)
  102. float(1.0E-5)
  103. float(-0.1)
  104. float(100000)
  105. float(-100000)
  106. float(100000)
  107. float(-100000)
  108. float(100000)
  109. float(-100000)
  110. float(5000000)
  111. float(-5000000)
  112. *** Testing doubleval() with valid float values ***
  113. float(0)
  114. float(1)
  115. float(-1)
  116. float(1.234)
  117. float(-1.234)
  118. float(1200)
  119. float(-1200)
  120. float(10)
  121. float(1050000)
  122. float(100000)
  123. float(-100000)
  124. float(1.0E-5)
  125. float(-0.1)
  126. float(100000)
  127. float(-100000)
  128. float(100000)
  129. float(-100000)
  130. float(100000)
  131. float(-100000)
  132. float(5000000)
  133. float(-5000000)
  134. *** Testing floatval() on non floating types ***
  135. float(-2147483648)
  136. float(2147483648)
  137. float(%d)
  138. float(%d)
  139. float(0)
  140. float(1)
  141. float(-1300)
  142. float(0)
  143. float(10)
  144. float(10.2)
  145. float(11)
  146. float(11)
  147. float(0)
  148. float(1)
  149. float(0)
  150. float(0)
  151. *** Testing doubleval() on non floating types ***
  152. float(-2147483648)
  153. float(2147483648)
  154. float(%d)
  155. float(%d)
  156. float(0)
  157. float(1)
  158. float(-1300)
  159. float(0)
  160. float(10)
  161. float(10.2)
  162. float(11)
  163. float(11)
  164. float(0)
  165. float(1)
  166. float(0)
  167. float(0)
  168. *** Testing error conditions ***
  169. Warning: floatval() expects exactly 1 parameter, 0 given in %s on line %d
  170. NULL
  171. Warning: doubleval() expects exactly 1 parameter, 0 given in %s on line %d
  172. NULL
  173. Warning: floatval() expects exactly 1 parameter, 2 given in %s on line %d
  174. NULL
  175. Warning: doubleval() expects exactly 1 parameter, 2 given in %s on line %d
  176. NULL
  177. Done