我正在尝试使用Java进行产品计算,但似乎无法使其工作。我最初尝试使用WolframAlpha,但是我超出了处理时间。在Java中使用BigDecimal进行产品计算
其计算公式为:Product (n/1220096908800), n=1..1220096908800
这是代码我试过:
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));
的思考?
编辑:这是我收到
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)
什么“似乎无法得到它的工作“是什么意思? – nicomp
所以你正在做这个循环,你分2个数字,然后乘以0,这将是每次都是0。你能解释你想达到的目标吗? – ControlAltDel
当你说产品(n/12000 ..)那是什么意思,什么产品? –