floatval.phpt   [plain text]


--TEST--
Testing floatval() and its alias doubleval() Functions
--FILE--
<?php
/* Prototype: float floatval( mixed $var );
 * Description: Returns the float value of var.
 */

echo "*** Testing floatval() with valid float values ***\n";
// different valid  float values 
$valid_floats = array(
                0.0,
                1.0,
                -1.0,
                1.234,
 	        -1.234,
                1.2e3,
	        -1.2e3,
		10.0000000000000000005,
		10.5e+5,
                1e5,
	        -1e5,
                1e-5,
		-1e-1,
		1e+5,
		-1e+5,
		1E5,
		-1E5,
		1E+5,
		-1E+5,
		.5e+7,
		-.5e+7
);

/* loop to check that floatval() recognizes different 
   float values, expected output:float value for valid floating point number */

foreach ($valid_floats as $value ) {
   var_dump( floatval($value) );
}


echo "\n*** Testing doubleval() with valid float values ***\n";
/* loop to check that doubleval() also recognizes different 
   float values, expected output:float value for valid floating point number */

foreach ($valid_floats as $value ) {
   var_dump( doubleval($value) );
}


echo "\n*** Testing floatval() on non floating types ***\n";

// get a resource type variable
$fp = fopen (__FILE__, "r");
fclose($fp);
$dfp = opendir ( dirname(__FILE__) );
closedir($dfp);

// other types in an array 
$not_float_types = array (
                   -2147483648, // max negative integer value
                   2147483648,  // max positive integer value
                   $fp,  // resource
                   $dfp,
                   "0.0", // string
                   "1.0",
	           "-1.3e3",
		   "bob-1.3e3",
                   "10 Some dollars",
	           "10.2 Some Dollars",
	       	   "10.0 dollar" + 1,
		   "10.0 dollar" + 1.0,
                   "",
                   true,
                   NULL,
                   null,
                 );
/* loop through the $not_float_types to see working of 
   floatval() on non float types, expected output: float value valid floating point numbers */
foreach ($not_float_types as $type ) {
   var_dump( floatval($type) );
}


echo "\n*** Testing doubleval() on non floating types ***\n";

/* loop through the $not_float_types to see working of 
   doubleval() on non float types, expected output: float value valid floating point numbers */
foreach ($not_float_types as $type ) {
   var_dump( doubleval($type) );
}




echo "\n*** Testing error conditions ***\n";
//Zero argument
var_dump( floatval() );
var_dump( doubleval() );

//arguments more than expected 
var_dump( floatval(TRUE, FALSE) );
var_dump( doubleval(TRUE, FALSE) );
 
echo "\nDone\n";


?>
--EXPECTF--
*** Testing floatval() with valid float values ***
float(0)
float(1)
float(-1)
float(1.234)
float(-1.234)
float(1200)
float(-1200)
float(10)
float(1050000)
float(100000)
float(-100000)
float(1.0E-5)
float(-0.1)
float(100000)
float(-100000)
float(100000)
float(-100000)
float(100000)
float(-100000)
float(5000000)
float(-5000000)

*** Testing doubleval() with valid float values ***
float(0)
float(1)
float(-1)
float(1.234)
float(-1.234)
float(1200)
float(-1200)
float(10)
float(1050000)
float(100000)
float(-100000)
float(1.0E-5)
float(-0.1)
float(100000)
float(-100000)
float(100000)
float(-100000)
float(100000)
float(-100000)
float(5000000)
float(-5000000)

*** Testing floatval() on non floating types ***
float(-2147483648)
float(2147483648)
float(5)
float(6)
float(0)
float(1)
float(-1300)
float(0)
float(10)
float(10.2)
float(11)
float(11)
float(0)
float(1)
float(0)
float(0)

*** Testing doubleval() on non floating types ***
float(-2147483648)
float(2147483648)
float(5)
float(6)
float(0)
float(1)
float(-1300)
float(0)
float(10)
float(10.2)
float(11)
float(11)
float(0)
float(1)
float(0)
float(0)

*** Testing error conditions ***

Warning: Wrong parameter count for floatval() in %s on line %d
NULL

Warning: Wrong parameter count for doubleval() in %s on line %d
NULL

Warning: Wrong parameter count for floatval() in %s on line %d
NULL

Warning: Wrong parameter count for doubleval() in %s on line %d
NULL

Done