Re: variable type - conversion/checking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 16-3-2013 19:20, Matijn Woudt wrote:
On Sat, Mar 16, 2013 at 6:52 PM, Maciek Sokolewicz <
maciek.sokolewicz@xxxxxxxxx> wrote:

Hi,

I have tried to find a way to check if a character string is possible to
test whether it is convertible to an intger !

any suggestion ?

BR georg


All responses in this thread have been very nice; but you could also try a
much simpler 2-step check:

1. is_numeric
2. if true > check if there's a decimal character in the string:

if(is_numeric($str) && false === strpos('.', $str)) {
    // it's an int for sure
} else {
    // might be a number, but it's definitly not an int

}


Wrong.  is_numeric will accept 1e1, which is a float, so you would need to
check for e or E too.

- Matijn

Although in theory I agree, indeed any e* number is treated as a floating point number. However, considering the exponent and the base are forced to be integer numbers (due to exclusion of decimal points), in the real number system, you will *always* end up with a natural number, i.e. integer. Regardless of your input.

So as a result, the input could always be interpreted as an integer, without any precision-loss using the method above.
- Tul

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



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux