2017-01-16 7 views
-2

자바 스크립트 : 브라우저에서자바 스크립트 : 3 + 0 = 30

console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1));  

콘솔 반환 adding3+0=30

임은 두 숫자를 보간 루프를 디버깅. addThis (원래 숫자에 추가해야하는 금액)은 정확히 3이고 p1 (원래 값)은 0입니다. 차이 (addThis)에 잘못된 값이 계산 될 때마다 잘못된 계산이 수행됩니다. 그래서 같은 문제에 : 잘 작동 사이

adding6+0=60 ...or at.. 
adding9+0=90 

... 모든 경우 (예를 들어, 콘솔 반환 : adding3.5999999999999996+0=3.59999999999999960)이 투여

점을 '잊고'? 이 값을 문자열로 처리합니까?

전체 코드를 공유 할 수는 없지만 문제는이 간단한 계산에 있어야합니다.

당신의 생각과 지식에 대해 감사드립니다. ;)

+0

(addThis + p1)에서 (p1 + addThis)로 변경했습니다. 콘솔이 반환됩니다 : adding3 + 0 = 03 ...이 도움이되지만 여전히 꽤 기능적이지 않습니다. 답변을 보내 주시면 감사하겠습니다. – Sebe

+1

루프를 게시하십시오. 우리는'addThis'와'p1'이 어디서 왔는지를 알아야합니다. –

+0

_ "전체 코드를 공유 할 수 없습니다."_ 우리는 원하지 않습니다. 지난 이틀 동안이 문제를 디버깅 한 [MCVE]를 제시해 주시기 바랍니다. –

답변

0

3 + 0 = 30. 그것은 문자열이어야합니다 (적어도 누구나 변수는 문자열입니다). 변수 값이 초기화/변경된 행을 다시 방문 할 수 있습니다. 다른 경우 아래와 같이 사용할 수 있습니다.

addThis=Number(addThis); p1=Number(p1); 
console.log('adding' + addThis + '+' + p1 +'=' + (addThis + p1)); 
+0

멋지다! 'p1'이 문자열에서 변환되면 ... 간단한 'Number'선언도 알지 못했습니다. 그렇게 간단합니다 - 그러나 그것에 대해 모르는 경우 당신은 그것을 찾을 수 없습니다 haha ​​ 좋은 하루 되세요! – Sebe

+0

HaHaHa. 당신도 멋진 하루 되세요! :디 –

0

당신이 parseInt function 사용할 수있는 정수로 문자열을 변환 할 경우

addThis = '3' 
 
p1 = '0' 
 
console.log('adding' + addThis + '+' + p1 +'=' + (parseInt(addThis) + parseInt(p1)))

+0

감사합니다. 그러나 소수는 사라집니다. parseInt가 작동하는 방법을 살펴 보았습니다. - 알아두면 좋고 유용하지만, 그 십진법이 필요합니다.) – Sebe