AVKor: ну забавно же, никто не спросит даже какого порядка числа будут. как (тип данных) и для чего будет использоваться целая часть? но зато все предлагают решение в виде преобразование в int. меня это удивляет.
самый лучший вариант (для моего примера, и для чисел умещающихся в double) уже описан вами - Math.floor(x), но даже оно не подходит для всех задач. ТЗ оставляет множество вопросов, потому что оно гавеное. Будут уточнения - будет и корректное решение.
я могу, в свою очередь, спросить: что будет тогда для числа 9223372036854775808.0?
самый лучший вариант (для моего примера, и для чисел умещающихся в double) уже описан вами - Math.floor(x)
Это не я предлагал.
Он даст double, в то время как целая часть числа - целое число.
А в виде int integralPart = Math.floor(x); он вообще нерабочий.
но даже оно не подходит для всех задач
Ну так возьмите и напишите решение с числами произвольной точности. Это решение будет подходить для любых чисел. А для базовых типов всегда найдётся пример, для которого не будут работать предложенные решения. Для long я уже привёл пример выше.
Евгений Корначев: OK, раз своего решения у вас нет с числами произвольной точности, то напишу его я:
import java.math.BigDecimal;
import java.math.BigInteger;
// ...
// тут опускаю банальности
// ...
BigDecimal x = new BigDecimal("9223372036854775808.7"); // например
BigInteger i = x.toBigInteger();
// ...
Для отрицательных чисел он возвращает не то, что принято в математике называть целой частью вещественного числа (просто обрезается то, что стоит после десятичной точки). Если надо по определению, то корректировка для таких случаев оставляется для ТС в качестве тривиального ДЗ.