2017-10-11 1 views
-2

두 번째 숫자가 2 번째 숫자보다 작 으면 증가 또는 감소 비율을 찾고 싶지만 두 번째 숫자가 0이면 내 test3이 실패합니다.자바 스크립트를 피하십시오. 0으로 나눌 때 무한합니다.

이 문제를 해결하는 방법
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은 그래서 당신은 test'은 OK이다 '라고, 단지'test3'가 failed'입니다했습니다 실패? –

+0

모든 테스트는 똑같은 문제가 있습니다. 3으로 나누지 마십시오. 0으로 나누지 마십시오. 두 번째 숫자가 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을 반환합니다.이 수식은 많은 양이어야하는 특정 이득 계수를 나타내는 데 사용됩니다 (하지만 수식 및 0 때문에 특정 수 대신 무한대가됩니다). 문제는 코드가 아니라 수식 때문입니다. –

+1

@MohitBhardwaj 글쎄,이 수식을 고치고 싶지 않다. OP가 나보다 잘 알아야한다. – Justinas

관련 문제