Я сделал по топорному,
double d= Double.valueOf("5.0596");
int i= (int) d;
double d2= d- i; // дробная часть
как можно по другому сделать?
Как уже посоветовали, d%1
выполняет ровно то, что надо, наиболее синтаксически коротким методом. С другой стороны, не обязательно это самый дешёвый в вычислении метод; Ваш "топорный" метод в этом смысле может быть даже лучше; если важна скорость, то лучше сделать бенчмарк по сравнению с вычитанием целой части.
Учтите, что int может не вместить всех целых значений для double в тех пределах, где double представляет все целые числа. Для long такое есть хотя бы для диапазона, где шаг значений double равен 1 или меньше. И конверсия бо́льших значений работает так, что молча выдаёт соответствующее крайнее целое, так что результат надо проверять.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Доброго времени сутокСразу же извиняюсь за возможную кривизну вопроса