数字转换器不会在小数点后转换数​​字

时间:2017-12-01 08:50:53

标签: javascript html css

其实我是学生,我刚开始用Javascript编程。我已经创建了一个二进制到八进制到十六进制到十进制转换器,它工作得很好,但小数点后的数字没有转换,请在必要时帮助我

我无法弄清楚问题

我的项目代码

  <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>

2 个答案:

答案 0 :(得分:1)

使用parseFloat代替parseInt来解析小数。使用parseFloat时,您无法传递第二个参数 - 基数。

答案 1 :(得分:1)

Fathyb提到parseFloat没有基数参数。而且有一个简单的原因。 将3.5转换为二进制时,您期望得到什么? 3等于0000011,5是0000101.但0000011.00000101不是有效的二进制格式。

这意味着据我所知你的代码很好,因为不支持浮点数。 ; O)