Ultimately depends on how much precision you want. The rule of thumb I use is to never throw away any information, so use integers only and ensure no overflow. And if you need to throw away bits do it explicitly to avoid bias due to uncontrolled rounding.