Hi,

 From http://www.php.net/manual/en/language.types.float.php (second comment in 
that page, from "kjohnson at zootweb dot com"):

"PHP switches from the standard decimal notation to exponential notation for 
certain "special" floats. You can see a partial list of 
such "special" values with this:"

 Then he goes on about it and finishes with:

 " I have to be honest: this is one of the strangest things I have seen in any 
language in over 20 years of coding, and it is a 
colossal pain to work around."

 I have the same problem. I have a big number I have to represent, it's usually 
"1" followed by 10 "zeros", the biggest value I'll 
have for it is 19999999999, never more than this. I only make one operation 
with it, (+), most of the time I need that number as a 
string, and never need it's float representation, only the absolute value (in 
fact, it's never going to have a fractional part). I 
cannot use integers because it's bigger than the integer range. 

 If it goes to it's exponential representation, breaks my code. Users are 
identified by that number. I wrote a small function, but 
cannot be sure if it's going to work (report error when the exponential 
notation is used by php), mostly because on my tests, I 
can't precise when and to which of these numbers php chooses to use the 
exponential notation:

--- code
function checkFloat($float_var) {

$ar_empty = "";
$string_var = (string)$float_var;

$pattern = '/[0-9]|\./'; // From zero to nine and "dots"
$match_found = preg_match_all($pattern, $string_var, $ar_empty);

unset($ar_empty);
 if ($match_found != strlen($string_var)) {
        return false;
} else {
        return true;
        }
}
--- code
 
 So, any suggestions/thoughts?
 Is there a way to prevent php from using the exponential notation for a float?


 thanks

=


-- 
Powered by Outblaze

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to