我遇到的问题是我说1 1/2,它是21/2而不是3/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>
答案 0 :(得分: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()
无法处理document.getElementById().
返回的HTML元素。但是,它可以处理该元素中包含的值,该值将字符串转换为数字类型(并且还将其舍入)。