首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Javascript在将数字相加时删除小数

Javascript在将数字相加时删除小数
EN

Stack Overflow用户
提问于 2018-08-03 04:29:27
回答 1查看 49关注 0票数 0

我有这个脚本,它将4个数字相加,但JS没有考虑到最初的小数位。

//初始输入表单

代码语言:javascript
复制
<form class="weight_form" data-ajax="false" method="post">
<input type="text" class="input_save" placeholder="save as.."/>
<input type="text" id="lf" placeholder="enter LF lbs" value="" onkeyup="myFunction()"/>
<input type="text" id="rf" placeholder="enter RF lbs" value="" onkeyup="myFunction()"/>
<input type="text" id="lr" placeholder="enter LR lbs" value="" onkeyup="myFunction()"/>
<input type="text" id="rr" placeholder="enter RR lbs" value="" onkeyup="myFunction()"/>
<input type="submit" id="sub_save" value="save"/>

//显示结果的Section

代码语言:javascript
复制
<div id="bottom_section">
    <input type="text" id="total"  value=""/>
    <input type="text" id="cross"  value=""/>
    <input type="text" id="ls"  value=""/>
    <input type="text" id="bite"  value=""/>    
</div>

// JS动态执行操作的脚本

代码语言:javascript
复制
<script>
function myFunction() {
var lf = document.getElementById("lf");
var rf = document.getElementById("rf");
var lr = document.getElementById("lr");
var rr = document.getElementById("rr");

var lf = parseInt(lf.value);
var rf = parseInt(rf.value);
var lr = parseInt(lr.value);
var rr = parseInt(rr.value);

  var lf_1 = lf*1;
  var rf_1 = rf*1;
  var lr_1 = lr*1;
  var rr_1 = rr*1;

  var total = lf_1 + rf_1 + lr_1 + rr_1;
  var cross = rf_1 + lr_1 / total;
  var ls = lf_1 + lr_1 / total;
  var bite = lr_1 - rr_1;


$('#total').val(total);
$('#cross').val(Math.round(cross));
$('#ls').val(Math.round(ls));
$('#bite').val(bite);
};
</script>

如果我为"weight_form“(lf,rf,lr,rr)中的每一个输入输入比方说20.5,那么总数就是80而不是82。为什么它似乎总是将值向下舍入?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 04:32:48

要在表单中处理浮点,请在解析来自input元素的值时使用而不是。

由于您使用的是jQuery,因此可以通过选择字段并在一行中解析它们的值来简化myFunction

代码语言:javascript
复制
var lf = parseFloat($("#lf").val());
var rf = parseFloat($("#rf").val());
var lr = parseFloat($("#lr").val());
var rr = parseFloat($("#rr").val());

示例:

代码语言:javascript
复制
function myFunction() {
  var lf = parseFloat($("#lf").val());
  var rf = parseFloat($("#rf").val());
  var lr = parseFloat($("#lr").val());
  var rr = parseFloat($("#rr").val());

  var lf_1 = lf * 1;
  var rf_1 = rf * 1;
  var lr_1 = lr * 1;
  var rr_1 = rr * 1;

  var total = lf_1 + rf_1 + lr_1 + rr_1;
  var cross = rf_1 + lr_1 / total;
  var ls = lf_1 + lr_1 / total;
  var bite = lr_1 - rr_1;

  $('#total').val(total);
  $('#cross').val(Math.round(cross));
  $('#ls').val(Math.round(ls));
  $('#bite').val(bite);
};
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<form class="weight_form" data-ajax="false" method="post">
  <input type="text" class="input_save" placeholder="save as.." />
  <input type="text" id="lf" placeholder="enter LF lbs" value="" onkeyup="myFunction()" />
  <input type="text" id="rf" placeholder="enter RF lbs" value="" onkeyup="myFunction()" />
  <input type="text" id="lr" placeholder="enter LR lbs" value="" onkeyup="myFunction()" />
  <input type="text" id="rr" placeholder="enter RR lbs" value="" onkeyup="myFunction()" />
  <input type="submit" id="sub_save" value="save" />
  <div id="bottom_section">
    <input type="text" id="total" value="" />
    <input type="text" id="cross" value="" />
    <input type="text" id="ls" value="" />
    <input type="text" id="bite" value="" />
  </div>
</form>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51661695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档