Java est BigDecimal.puissance(BigDecimal exposant): Est-il une bibliothèque Java qui est-il?
De Java BigDecimal.pow(int)
méthode accepte un paramètre de type entier, pas de BigDecimal
paramètre.
Est-il une bibliothèque, comme Apache commons-lang, qui prend en charge BigDecimal.pow(BigDecimal)
? Il devrait être en mesure de faire calculer "1.21".pow("0.5")
de retour "1.1"
.
- Regardé la source? javasourcecode.org/html/open-source/jdk/jdk-6u23/java.math/... probablement pas trop difficile à mettre en œuvre votre propre.
- Peut-être que ce code source (stackoverflow.com/a/3590314/592228) peut être de l'aide? Vous n'auriez pas besoin d'une autre bibliothèque.
- J'ai déjà donné la solution il y a stackoverflow.com/questions/11848887/...
- Pour ceux comme moi qui cherché : github.com/eobermuhlner/big-math
Vous devez vous connecter pour publier un commentaire.
Il y a un Les mathématiques.BigDecimal mise en œuvre des principales fonctions mathématiques avec le code source disponible à partir de la Bibliothèque de l'Université Cornell ici (d'ailleurs vous pouvez télécharger la bibliothèque comme un tar.gz). Voici un exemple de l'utilisation de la bibliothèque:
Imprime:
Mise à jour
Les informations de licence est maintenant clair en Mai 2015 mise à jour:
anc
dossier,cd
en elle, puis exécutermake BigDecimalMath.jar
, cela devrait générer laBigDecimalMath.jar
fichier que vous pouvez utiliser comme une bibliothèque externex == Math.ceil(x)
, puis en utilisant la normeBigDecimal.pow(int)
qui devrait être plus précise, pour le cas particulierx^1
est la fonction identité a donné4^1=3
, avec cette bibliothèque.Havent utilisé, mais vu suanshu
BigDecimalUtils a un pow() qui convient à vos besoins
La Apfloat bibliothèque semble être de faire cela, cochez la Les docs de l'API.
Apcomplex est une classe wrapper, par exemple, un BigDecimal.
BigDecimal
et deApcomplex
new Apcomplex(new Apfloat(BigDecimal))
devrait faire l'affaire.new BigDecimal(String.format("%s", ApfloatMath.pow(new Apfloat(new BigDecimal("2.0"), 16), new Apfloat(new BigDecimal("3.0"), 16))));
retour8.000000000000001
pas 8