저는 Java에서 약간의 초보자입니다. 서로 0에서 2000 사이의 52 개의 숫자를 곱해야합니다. 이미 *를 BigDecimal없이 사용하려고 시도했지만 그 결과 0.0이됩니다.BigDecimal 곱셈이 0을 반환합니까?
BigDecimal productOfStock1 = BigDecimal.ZERO;
for(int k = 1; k <= N; k++){
for(int i = 1; i <= n; i++){
if (i == 1){
stockPrice[k][i] = stockZero*Math.pow(e, form + sigma*(randomno.nextGaussian()));
}
else {
stockPrice[k][i] = stockPrice[k][i-1]*Math.pow(e, form + sigma*(randomno.nextGaussian()));
}
//sumOfStock += stockPrice[k][i];
//productOfStock *= stockPrice[k][i];
productOfStock1 = productOfStock1.multiply(BigDecimal.valueOf(stockPrice[k][i]));
System.out.println(/*"Stock at [" + i + "] for N = " + N + " and path number " + k + " is " + */stockPrice[k][i]);
}
}
System.out.println(productOfStock1);
이 나를 0E-637 것이 아니라, 저를주고 가정되는 큰 숫자 제공 :
여기 내 코드입니다. 어떤 도움을 주셔서 감사합니다. 당신이 1
로를 초기화해야
감사합니다. 나는 지금 어리 석다. – user3251256
당신은 환영합니다 :) –