2016-02-20 143 views
-1

我正在使用一類股票的程序工作。其中一種方法應計算股票的當前價值。指示說「股票數量乘當前價格」。我有一種方法通過將當前值乘以隨機百分比來更新價格。運行該程序後,getCurrentValue返回的值將與初始值相同,即從未改變。然後,我將currentPrice的變量更改爲static,現在currentValue的值發生變化,但返回的答案非常高。按照3.7E18的規定。最初將currentPrice設置爲100.如何獲得股票類股票的當前價值?

在我的代碼中是否有錯誤或者指令錯誤?我真的不知道股票是如何估值的。

繼承人我的一些代碼:

private static double currentPrice; 

public void updatePrice(){ 
    double multiplier = 1.05 + new Random().nextGaussian() * 0.25; 
    currentPrice = getCurrentValue() * multiplier; 
} 

public double getCurrentValue(){ 
    double currentValue = numShares * currentPrice; 
    return currentValue; 
} 

回答

0

您當前的價值是整個股票的總價值。你用這個數值來確定新的價格。這是價格和數量的兩倍。 從乘法中刪除音量,你將有合理的價格。 另外currentPrice應屬於實際股票,並不是所有股票的一個變量。所以它不應該是靜態的。

class Stock { 
    private double currentPrice=1; 

    public void updatePrice(){ 
    double multiplier = 1.05 + new Random().nextGaussian() * 0.25; 
    currentPrice *= multiplier; 
    } 

    public double getCurrentValue(){ 
    double currentValue = numShares * currentPrice; 
    return currentValue; 
    } 
}