2014-12-09 1 views
0

나는이 웹상에서 많은 것을 찾았지만 나에게 도움이되는 것을 찾지 못했습니다. 나는이 한 : 당신은 일반적으로 세 개의 변수를 선언하는 경우javascript function Math.pow 입력 텍스트에서 10 진수 값 가져 오기

montante <input type='text' id='A' onkeyup='calcola()' value='15000' /><br /> 
tasso <input type='text' id='i' onkeyup='calcola()' value='0.07' /><br /> 
anni <input type='text' id='n' onkeyup='calcola()' value='6' /> 

<script> 
var A = document.getElementById('A').value; 
var n = document.getElementById('n').value; 
var float i = document.getElementById('i').value; 
var R = A/((1 - Math.pow((1 + i), -n))/i); 

document.write(R); 
</script> 

이 잘 작동하지만, 당신이 입력의 값을 가지고가는 경우에 스크립트가 ... 나는 문제에 생각 올바른 대답을하지 않습니다 입력에서 점의 숫자 원인으로 "i"var을 인식하지 못하는 함수 Math.pow ... 입력과 관련된 작업이 필요합니까? 미리 감사드립니다.

+1

'var float i'는 진짜가 아닙니다. 그냥'var i' do –

+0

당신의 문제는'1 + i'는 문자열 연결입니다. 문자열을 숫자로 변환하려면'parseFloat (i, 10)'을 사용해야합니다. (내 동료 사용자 : 분명히 어딘가에 중복이 있습니까?) – apsillers

답변

1

HTML 입력 요소에서 읽은 값의 유형은 javascript에 의해 문자열로 결정됩니다. "12"

: 값을 얻을 것이다

var a = "1"; 
var b = 2; 
var c = a + b; 

바르 C : 당신이 유형 번호의 변수와 String 형의 변수에 + 연산자를 사용하는 경우

, 자바 스크립트는 문자열 연결을 수행합니다

이 동작을 방지하려면 먼저 입력 값을 구문 분석해야합니다. Javascript parseFloat() 함수를 사용하여이 작업을 수행 할 수 있습니다.

관련 문제