Generating a float random value in PHP is little bit tricky. Both rand() and mt_rand() will return Integer value. But sometimes you need to generate random float value, for currency or math case for examples. So i would like to share my little script to generate a Float random value.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | /** * Generate Float Random Number * * @param float $Min Minimal value * @param float $Max Maximal value * @param int $round The optional number of decimal digits to round to. default 0 means not round * @return float Random float value */ function float_rand( $Min , $Max , $round =0){ //validate input if ( $min > $Max ) { $min = $Max ; $max = $Min ; } else { $min = $Min ; $max = $Max ; } $randomfloat = $min + mt_rand() / mt_getrandmax() * ( $max - $min ); if ( $round >0) $randomfloat = round ( $randomfloat , $round ); return $randomfloat ; } |
Usage:
1 2 | float_rand(0.01,5.00); //Generate float value with no rounded float_rand(0.01,5.00,2); //Generate float value with rounded to 2 decimals |
This code is free to use in any php application you like. If you like please leave me any comments, i really appreciate it.
should be if ($Min>$Max), not if ($min>$Max)…