2017-12-01 1 views
1

저는 실제로 학생이며 방금 Javascript로 프로그램을 시작했습니다. 나는 꽤 좋은 노력 컨버터를 진수로 16 진수 8 진수하는 바이너리를 만들었하지만 소수점 숫자 나에게 필요한 도움을 주시기 바랍니다 변환되지 않습니다숫자 변환기가 소수점 이하 자릿수를 변환하지 않습니다.

나는 문제

을 알아낼 수 없습니다 내 프로젝트 코드

<html> 
    <head> 
     <title> Convertor </title> 




</head> 
<body> 
    <input id="bin" oninput="Convert('bin', 2)" placeholder="bin" spellcheck="false"> 
<input id="oct" oninput="Convert('oct', 8)" placeholder="oct" spellcheck="false"> 
<input id="dec" oninput="Convert('dec', 10)" placeholder="dec" spellcheck="false"> 
<input id="hex" oninput="Convert('hex', 16)" placeholder="hex" spellcheck="false"> 

    <script> 


    function id(id) { 
    return document.getElementById(id); 
} 
function Convert(s, n) { 
    if(parseInt(id(s).value, n)) { 
    if("bin" != s) { id("bin").value = parseInt(id(s).value, n).toString(2) } 
    if("oct" != s) { id("oct").value = parseInt(id(s).value, n).toString(8) } 
    if("dec" != s) { id("dec").value = parseInt(id(s).value, n).toString(10) } 
    if("hex" != s) { id("hex").value = parseInt(id(s).value, n).toString(16) } 
    } else { 
    if("bin" != s) { id("bin").value = "" } 
    if("oct" != s) { id("oct").value = "" } 
    if("dec" != s) { id("dec").value = "" } 
    if("hex" != s) { id("hex").value = "" } 
    } 
} 

    </script> 

</body> 

답변

1

사용 parseFloat 대신 parseInt 소수점 숫자를 구문 분석합니다. parseFloat을 사용할 때 두 번째 인수 인 기수를 전달할 수 없습니다.

1

패시브는 parseFloat에 기수 매개 변수가 없음을 언급했습니다. 그리고 간단한 이유가 있습니다. 3.5를 바이너리로 변환 할 때 예상되는 결과는 무엇입니까? 3은 0000011이고 5는 0000101입니다. 그러나 0000011.00000101은 유효한 이진 형식이 아닙니다.

즉, 부동 소수점이 지원되지 않으므로 코드가 올바르다는 것을 의미합니다. ; o)

관련 문제