其实我是学生,我刚开始用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>
答案 0 :(得分:1)
使用parseFloat
代替parseInt
来解析小数。使用parseFloat
时,您无法传递第二个参数 - 基数。
答案 1 :(得分:1)
Fathyb提到parseFloat没有基数参数。而且有一个简单的原因。 将3.5转换为二进制时,您期望得到什么? 3等于0000011,5是0000101.但0000011.00000101不是有效的二进制格式。
这意味着据我所知你的代码很好,因为不支持浮点数。 ; O)