javascript - 如何让数学底函数在数学加法问题中工作
问题描述
我在获取 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>
有趣的是,如果我将所有三个数字都乘以它就可以了
解决方案
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);
推荐阅读
- html - 在第二列中移动 li 项目 - 仅限 CSS
- angular - 支持 IE 和 Mozilla 的日期和时间库
- intellij-idea - 在 Intellij Idea Community Edition 中找不到创建 Java EE 项目的选项。是否可以?
- spring - ResponseEntity 中的 MappingJacksonValue 在单元测试中返回部分响应
- javascript - JavaScript 允许一个复选框或一组复选框
- html - 如何控制表格内的多个(点击)事件?
- javascript - Firebase 实时数据库:后查询问题
- r - R脚本到参数
- debugging - 如何在程序“脚本”中找到 interface/ftdi/esp32_devkitj_v1.cfg?
- python - 如何在不复制的情况下从单个 1D Numpy 数组构造 Pandas DataFrame