Перевод десятичной дроби в обычную Java

176
24 ноября 2017, 06:40

Нужна функция которая принимает float и возвращает string в виде дроби 1/3 и тому подобные

Например: func(0.5) = 1/2

Было пару идей, но кажется можно сделать в разы проще и "умнее" Подскажите как лучше всего это реализовать?

Answer 1
public class Fraction {
    private static final double ratio = 0.01;
    public static String get(double val) {
        for (int i = 1;; i++) {
            double tem = val / (1D / i);
            if (Math.abs(tem - Math.round(tem)) < ratio)
                return Math.round(tem) + "/" + i;
        }    
    }
}

или можно не изобретать велосипед и использовать Fraction из Apache Commons Math.

READ ALSO
java сохранение mp4 [требует правки]

java сохранение mp4 [требует правки]

Здравствуйте, посоветуйте статью с примерами создания видео из изображений при помощи Java Media Framework

247
Вернуть статус сервера

Вернуть статус сервера

Как при обращении клиента к серверу вернуть ему статус сервера 200? Используется sparkНашел что можно сделать как то response

176
Java 8 stream map to new Objects

Java 8 stream map to new Objects

Как можно замапить стрим в новые объекты? Или, эти примеры что не равнозначны?

233
Glassfish NullPointeException сервер не запускается

Glassfish NullPointeException сервер не запускается

Только скачал архив GlassFish 50 - Full Platform, разархивировал его, запускаю через командную строку

466