Принятый ответ не работает для отрицательных чисел от -0 до -1.0
Также дайте дробную часть отрицательной.
Например:
Для номера -0,35
возвращает
Целочисленная часть = 0
Дробная часть = -0,35
Если вы работаете с GPS-координатами, лучше получить результат со знаком в целочисленной части как:
Целочисленная часть = -0
Дробная часть = 0,35
Номера тезисов используются, например, для координат GPS, где важен знак для широты или долготы
Код предложения:
double num;
double iPart;
double fPart;
// Get user input
num = -0.35d;
iPart = (long) num;
//Correct numbers between -0.0 and -1.0
iPart = (num<=-0.0000001 && num>-1.0)? -iPart : iPart ;
fPart = Math.abs(num - iPart);
System.out.println(String.format("Integer part = %01.0f",iPart));
System.out.println(String.format("Fractional part = %01.04f",fPart));
Выход:
Integer part = -0
Fractional part = 0,3500