2017-10-11 48 views
-2

我想找到增加或減少比較2數字的百分比,第二種說法奏效,但我的test3失敗,如果第二個數字爲零。avoid javascript無限的時候分爲零

const test = Math.abs(((120 - 0)/0) * 100).toFixed(1) + '%' 
const test2 = Math.abs(((50 - 25)/25) * 100).toFixed(1) + '%' 
const test3 = Math.abs(((10000 - 0)/0) * 100).toFixed(1) + '%' 

console.log('test:', test) 
console.log('test2:', test2) 
console.log('test3', test3) 

https://jsfiddle.net/vm1vsf6p/

如何解決這個問題?

+0

'但是我TEST3已failed'所以你說'test'是確定的,只是'test3'是失敗? –

+0

所有的測試都有同樣的問題,而不僅僅是3.不要被0除。檢查第二個數字是否爲零,然後除以它。 – Nope

回答

-1

你可以假設的東西0%是0,所以:

function test(num1, num2, divider) { 
 
    var output = 0; 
 

 
    if (divider) { 
 
    output = Math.abs(((num1 - num2)/divider) * 100).toFixed(1); 
 
    } 
 

 
    return output+'%'; 
 
} 
 

 
console.log('test:', test(120, 0, 0)) 
 
console.log('test2:', test(50, 25, 25)) 
 
console.log('test3', test(10000, 0, 0))

+0

對於情況3,這將返回0。我認爲公式用於表示某個增益因子,在這種情況下該因子應該是一個很大的數量(但是由於公式和零,它變成無窮大而不是某個數)。問題是與公式,而不是你的代碼。 –

+1

@MohitBhardwaj好吧,我不是在修正這個公式,因爲OP應該比我更清楚。 – Justinas