Comment calculer le ratio d'aspect par un facteur donné?

Comment dois-je calculer le ratio d'aspect (au format integer:integer) par un facteur donné?

Par exemple, le rapport d'aspect de 16:9 est un facteur de 1.778, car 16 /9 = 1.778. Mais comment puis-je trouver le ratio par ce facteur? Donc

Dimension getAspectRatio(double factor) {
    ...
}

public static void main(String[] arguments) {
    Dimension d = getAspectRatio(16d / 9d);
    System.out.println(d.width + ":" + d.height);
}

doit retourner

16:9
Vous pouvez peut-être bien servi par trouver le meilleure approximation rationnelle à votre entrée

OriginalL'auteur MC Emperor | 2011-09-16