Извлеките дробную часть числа (например, ((int) 0.5 + 1) - 0.5
, затем разделите единицу на результат (1 / 0.5
). Вы получите знаменатель дроби. Затем приведите число с плавающей точкой к int, и выполучим целую часть. Затем объединяем оба.
Это простое решение, и оно будет работать, только если числитель дроби равен 1.
double n = 1.2f;
int denominator = 1 / (Math.abs(n - (int) n - 0.0001)); //- 0.0001 so the division doesn't get affected by the float point aproximated representation
int units = (int) n;
int numerator = units * denominator + 1;
System.out.println("" + numerator + "/" + denominator); //6/5
System.out.println("" + units + " 1/" + denominator); //1 1/5