首页 > 解决方案 > 如何让数学底函数在数学加法问题中工作

问题描述

我在获取 Math.floor 函数添加数字时遇到问题。

    <script type="text/javascript">

    function getOrt(){
        
        var bir = document.getElementById('bir').value;
        var iki = document.getElementById('iki').value;
        var uc = document.getElementById('uc').value;
        var avrg = Math.floor(bir+iki+uc);
        document.getElementById('avrg').value=avrg;
        }

</script>

如果我为 bir 输入 1,为 iki 输入 2,为 uc 输入 3,我得到 123

在html部分

<div class="form-group">
                    <div class="form-row form-row-1">
                        <input type="text" name="bir" class="bir" id="bir" placeholder="bir">
                    </div>
                    
                    <div class="form-row form-row-1">
                        <input type="text" name="iki" class="iki" id="iki" placeholder="iki" >
                    </div>
                    
                    <div class="form-row form-row-1">
                        <input type="text" name="uc" class="uc" id="uc" onchange="getOrt();" placeholder="uc" >
                    </div>
                    <div class="form-row form-row-1">
                        <input type="text" name="ort" class="ort" id="avrg"  placeholder="Ort." >
                    </div>
                    
                </div>

有趣的是,如果我将所有三个数字都乘以它就可以了

标签: javascriptmath

解决方案


bir, iki&uc都是字符串值。的结果bir+iki+uc也是一个字符串,它不会代表您认为应该的值。

既然您正在使用,Math.floor那么我认为这些应该/可能是浮点值,您应该首先使用 parseFloat 将它们转换为浮点数值。

    var bir = parseFloat(document.getElementById('bir').value);
    var iki = parseFloat(document.getElementById('iki').value);
    var uc = parseFloat(document.getElementById('uc').value);
    // bir, iki and uc are all numbers now
    var avrg = Math.floor(bir+iki+uc);

推荐阅读