Math::BigFloat overloads int(), so it's ok to use it.
However, the overloaded int() function returns a Math::BigInt object. (I don't see any need for it to do that ... it just makes things confusing.)
Anyway, *that*, of course, brings us to the caveat you mentioned.