Попробуйте Math.rint(double)
или Math.round(double)
. Независимо от различий в производительности, это как минимум более четко и кратко.
[Изменить]
В ответ на ваш уточненный вопрос - «как мне получить целую часть двойного числа без приведения» (несмотря на то, что ваш заголовок спрашивает о округлении ), попробуйте следующее: *
public static double integerPart(double d) {
return (d <= 0) ? Math.ceil(d) : Math.floor(d);
}
integerPart(522.99); // => 522d
integerPart(-3.19); // => -3d
Конечно, эта форма, вероятно, не быстрее, чем приведение, поскольку она использует сравнение и вызов метода.