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