2014-04-30 4 views
0

문제는 1 1/2을 넣으면 3/2가 아닌 21/2가됩니다. 텍스트 문자열이라는 사실을 알고 있기 때문에 2 + 1을 추가하는 대신 텍스트를 함께 표시합니다.부적절한 숫자로 혼합 숫자를 써야합니다.

도와주세요! 코드의

<head> 
    <script> 
    function convert(){ 

    var nu = Math.round(document.getElementById("nu")); 
    var de = Math.round(document.getElementById("de")); 
    var wh = Math.round(document.getElementById("wh")); 

    var wdn = (wh.value*de.value)+nu.value; 
    var display = document.getElementById("display"); 
    display.value = wdn+"/"+de.value; 
    return false; 
    } 
    </script> 
    </head> 
    <body> 
    <form onsubmit="return convert()"> 
    Whole: <input type="number" id="wh" style="width: 30px;"> 
    <br> 
    <br> 
    <input type="number" id="nu" style="width: 30px;"> 
    <br> 
    -------- 
    <br> 
    <input type="number" id="de" style="width: 30px;"> 
    <br> 
    <textarea id="display" readonly style="border: 0px solid black; width: 300px; height: 200px;"></textarea> 
    <br> 
    <input type="submit" style="visibility: hidden;"> 
    </form> 
    </body> 

답변

1

이 라인을 변경할 필요가 : 여기 내 코드입니다

var nu = Math.round(document.getElementById("nu")); 
var de = Math.round(document.getElementById("de")); 
var wh = Math.round(document.getElementById("wh")); 

var wdn = (wh.value*de.value)+nu.value; 
var display = document.getElementById("display"); 
display.value = wdn+"/"+de.value; 

올바른 사용 :

var nu = Math.round(document.getElementById("nu").value); 
var de = Math.round(document.getElementById("de").value); 
var wh = Math.round(document.getElementById("wh").value); 

var wdn = (wh*de)+nu; 
var display = document.getElementById("display"); 
display.value = wdn+"/"+de; 

설명 :

Math.round()가 HTML에서 작동하지 않을 수 있습니다 요소에 의해 반환 된 document.getElementById(). 그러나 그것은 포함 된 값을 사용할 수 있습니다. 이 요소는 문자열을 숫자 형식으로 변환합니다 (또한 반올림합니다).

+1

나는 똑같은 말을하려고했다. 여기에 [JSFiddle] (http://jsfiddle.net/HE66X/)이 있습니다. –

관련 문제