On 16-3-2013 19:20, Matijn Woudt wrote:
On Sat, Mar 16, 2013 at 6:52 PM, Maciek Sokolewicz <
maciek.sokolew...@gmail.com> 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

Reply via email to