Ich versuche, eine Produktberechnung in Java zu machen, aber ich kann nicht scheinen, es zur Arbeit zu bringen. Ich habe anfangs versucht, WolframAlpha zu verwenden, aber ich habe die Verarbeitungszeit überschritten.Produktberechnung in Java mit BigDecimal
Die Formel lautet: Product (n/1220096908800), n=1..1220096908800
Dies ist der Code Ich habe versucht:
BigDecimal z = new BigDecimal("0");
BigDecimal n = new BigDecimal("1220096908800");
for (BigDecimal x = BigDecimal.valueOf(1); x.compareTo(n) < 0; x = x.add(BigDecimal.ONE)) {
z = (x.divide(n)).multiply(z);
}
z = z.setScale(8, BigDecimal.ROUND_DOWN);
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(3);
df.setMinimumFractionDigits(6);
df.setGroupingUsed(false);
System.out.print(df.format(z));
Gedanken?
EDIT: Das ist der Fehler, den ich
Exception in thread "main" java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
at java.math.BigDecimal.divide(BigDecimal.java:1690)
at javaapplication3.JavaApplication3.main(JavaApplication3.java:34)
Was bedeutet " kann nicht scheinen, um es zur Arbeit zu bringen "gemein? – nicomp
Also machen Sie diese Schleife, wo Sie 2 Zahlen teilen, dann multiplizieren Sie mit 0, die jedes Mal 0 wird. Kannst du erklären, was du erreichen willst? – ControlAltDel
Wenn Sie Produkt (n/12000 ..) sagen, was das bedeutet, Produkt von was? –