2017-10-11 12 views
-2

2番目のステートメントは機能しましたが、2番目のステートメントが失敗するとtest3が失敗しました。この問題を解決する方法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

を 'いますが、' test'がOKであると言うので、私のTEST3が、failed'たばかり '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さて、私はこの式を修正していません。 – Justinas

関連する問題