我需要写一个混合数字作为一个不合适的分数

时间:2014-04-30 03:24:29

标签: javascript html5 fractions

我遇到的问题是我说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>

1 个答案:

答案 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元素。但是,它可以处理该元素中包含的值,该值将字符串转换为数字类型(并且还将其舍入)。