(This is all very academic, and in a purely practical sense, @scanon has already said everything there is to say.)

In standard set-theoretic mathematics, this is all a bit fuzzy because the notion of "types" doesn't really exist, so in a certain sense integers can be considered "real numbers" (inasmuch as you can use your favourite construction of the real numbers and then identify a subset of those with the integers, but this is also a bit awkward, because you need *another* notion of integers in the first place in order to be able to construct the real numbers...), but critically, mathematical theorems about the *set of integers* are not the same theorems as those about the *set of real numbers*, because these two are distinct sets (and when proving things about a set, of course it matters that certain elements are *not* part of the set).

This means you have to be a bit careful about which statements about the real numbers are applicable for integers, too. For example, if you prove that 2^{x+y} = 2^x2^y for all real numbers x,y, the same proof is valid for all integers x, y, but a theorem like "every non-zero real number has an inverse" is of course not true for the integers. The first statement relies only on a predicate that is valid for every two elements of the set, so it's still valid when considering a subset, but the second theorem needs to "look at other elements in the set".

You can look at other types of mathematical foundations which have some type-theory background and then integers and real numbers are more clearly distinct, and if you want to extend some proof about the reals to a corresponding proof about the integers in e.g. something like Coq, you need to work with explicit homomorphisms.