2017-10-11 22 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