Je ne peux pas trouver pourquoi j'ai obtenu un java.lang.ArithmeticException: Invalid operation
tout en utilisant grand décimal.java BigDecimal arithmaticException opération invalide
public static String E (int exponent, String value){
BigDecimal ten= new BigDecimal("10");
BigDecimal tempValue=new BigDecimal (value);
return tempValue.multiply(ten.pow(exponent)).toString();
}
Certains des exposants ont des valeurs telles que -27
. Y at-il un moyen de contourner ce problème, car il serait difficile de stocker les valeurs d'origine avec beaucoup de zéros. J'ai choisi BigDecimal car j'avais besoin de précision.
Merci
Je suis absolument sûr qu'il n'a pas une précision infinie. J'ai toujours cette erreur cependant. L'utilisation du double n'atteindra pas aussi loin tandis que certaines opérations effectuées tendent à se faire près de 0. Je ne vois pas comment 10 à la mise hors tension quelque chose peut être une précision infinie et une calculatrice scientifique peut maintenir la valeur jusqu'à -99. Sinon, y aurait-il une meilleure façon de représenter cela? –
Pourriez-vous nous donner la trace de la pile de l'exception? –
@ErrorMessages 'pow (int)' donnera, lorsqu'il reçoit un nombre négatif, une exception ArithmeticException. Toujours. http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#pow%28int%29 – Joni