"When used around the 2nd argument of is/2, the result will be returned as a floating point number. In other contexts, the operation has no effect."
It actually works inside expressions, too:
X is an integer but not a float
?- X is 8 + 1, integer(X), \+ float(X) X = 9.
By converting 8, X is a float but not an integer:
?- X is float(8) + 1, float(X), \+ integer(X). false.