1
我在Java中有點新手,我有一個程序可以產生52個不同的股票價格,可以在0到2000之間的任何地方。我的程序還生成N個不同的股票價格「路徑」 。我想知道這52種股票價格的產品是什麼。我決定使用BigDecimal。使用BigDecimal的不精確乘法運算
BigDecimal[] productOfStock1 = new BigDecimal[N+1];
for(int k = 1; k <= N; k++){
productOfStock1[k] = BigDecimal.ONE;
}
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()));
}
productOfStock1[k] = productOfStock1[k].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("Product : " + productOfStock1[k]);
我跑進是,[1]對i,當我複製stockPrice的值[I] = 1,...,52導入Excel和計算產品,得到了一個不同的值的問題來自我的代碼的BigDecimal值。任何幫助表示讚賞。
你發現哪一個實際上是正確的嗎?還是更精確? Excel或BigDec? – Fildor
我真的不知道如何檢查,但我手算了前10個數字,並與Excel的產品功能進行了比較,他們大致相同。我假設Excel是準確的。 – user3251256