im just wondering if thats the only way to force the compiler to use floating point arithmetic?
It's not the only way - casting one of the ints in your expression to a floating point type might be safer. If a mathematician was involved in writing your compiler, she might 'optimise out' a constant multiplication by 1.0 as an identity operation (she hasn't and '* 1.0' does work, but I like to be explicit about what type I'm using). The Java Language Specification is the place to look for the definitive view, but it's not exactly light reading:
Conversions and Promotions