2013-09-27 126 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」,因爲任何包含無窮大的數字列表(除非可能是無限列表)的平均數都是無窮大。