A number can be either:
99
).
99.91
).
integer/1
succeeds if its argument is an integer.
The built-in predicate real/1
succeeds if its argument is a real number.
These give the following behaviour:
| ?- integer(9). yes | ?- integer(99.9). no | ?- real(99.9). yes | ?- real(9). no | ?- number(9). yes | ?- number(99.9). yes | ?- number(foo). no | ?- number(Foo).