nième implémentation racine

Je suis en train de travailler sur un moyen de calculer le nème de la racine d'un nombre. Cependant, je vais avoir des problèmes avec le nème racines de nombres négatifs.

La plupart des gens disent utiliser Math.pow(num, 1 /root)mais cela ne fonctionne pas pour les nombres négatifs.

J'ai essayé ceci:

public static double root(double num, double root) {
    if (num < 0) {
        return -Math.pow(Math.abs(num), (1 / root));
    }
    return Math.pow(num, 1.0 / root);
}

mais, il ne fonctionne pas pour tous les numéros de la racine peut être un nombre décimal. Par exemple root(-26, 0.8) retourne -58.71mais c'est une entrée non valide. Cela permettra également de donner la mauvaise réponse, même pour les racines. Par exemple root(-2, 2) retourne -1.41421mais -2 n'ont pas de racine carrée.

source d'informationauteur Will | 2011-06-13