Ich kann nicht finden, warum ich eine java.lang.ArithmeticException: Invalid operation
während der Verwendung großer Dezimalstelle bekam.java BigDecimal arithmaticException ungültige Operation
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();
}
Einige der Exponenten haben Werte wie -27
. Gibt es einen Weg dazu, da es schwierig wäre, die ursprünglichen Werte mit vielen Nullen zu speichern. Ich wählte BigDecimal, da ich Präzision brauchte.
Danke
Ich bin mir absolut sicher, dass es keine unendliche Genauigkeit hat. Ich bekomme diesen Fehler trotzdem. Die Verwendung von double wird nicht so weit reichen, während einige Operationen in der Nähe von 0 durchgeführt werden. Ich sehe nicht, wie 10 bis zur Ausschaltung etwas eine unendliche Präzision sein kann und ein wissenschaftlicher Rechner den Wert bis -99 halten kann. Gibt es sonst eine bessere Möglichkeit, dies darzustellen? –
Können Sie uns die Stack-Trace der Ausnahme geben? –
@ErrorMessages 'pow (int)' wird, wenn eine negative Zahl angegeben wird, eine ArithmeticException auslösen. Immer. http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#pow%28int%29 – Joni