Math.floorを使ってもdoubleで扱える範囲でないと仕方ないのは変わりない。
入力が適切に処理できる範囲に収まっているか確認し、大きすぎます等の案内を出す必要がある