2013-09-27 134 views
0

我有资产价格的数据,其中一些价格为0.我的计算回报的公式是((curPrice/prevPrice)-1)* 100。如果以前的价格为零,最好的方法是什么?将百分比增加量视为100%是否有效?如何通过零处理百分比?

下面是有效的吗?

previousPrice == 0 ? return 100 : ((curPrice/prevPrice)-1)*100; 
+0

我不确定你在问什么 –

+0

现在检查,我做了修改 – godzilla

+0

这个问题不是一个编程问题,而是一个需求问题。你必须根据你的问题领域的知识来决定正确的行为。一旦你确定了,编写代码应该很简单。 –

回答

4

否如果前一个是1并且当前是1000,那么您将返回99900%由于previousPrice接近0,百分比增加接近无限。

你应该做的是以不同的方式描述改变。例如你说现在的价格是X,没有提到百分比的增加。

+0

这些返回被插入到其他公式中,所以我需要输入一个数字, – godzilla

+4

在这种情况下,您需要插入无限或可表示的最大数字。问题是你正在应用一个在这种情况下没有意义的模型。 –

0

正如彼得所说,如果以前的价格为0,百分比回报没有任何意义。因此,您应该忽略任何前一个价格为0的情况。否则,您从其他公式中获得的结果将赢得'没有多大意义。

这样做的一种方法是在该情况下返回“N/A”,并且为了计算目的返回“N/A”的值或者在这些情况下返回“N/A”。通过这种方式可以限制这种情况的影响,但添加“适用时”这样的警告并不是一个坏主意。 IE:“在适用的情况下,平均回报是X”,因为任何包含无穷大的数字列表(除非可能是无限列表)的平均数都是无穷大。