我正在开发一个使用一类股票的程序。其中一种方法应该计算出股票的当前价值。说明书"股票数量乘以当前价格"。我有一种方法,通过将此当前值乘以随机百分比来更新价格。在运行程序之后,getCurrentValue返回的值将与初始值相同,即它永远不会更改。然后我将currentPrice的变量更改为静态,现在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 :(得分:0)
您当前的价值是整个股票的总价值。并且您使用此值来确定新价格。这是价格和数量的双倍增加。 从乘法中删除音量,你将有合理的价格。 currentTravice也应该属于实际股票而不是所有股票的一个变量。所以它不应该是静态的。
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;
}
}