Javascript 舍入小数

Javascript 舍入小数,javascript,math,Javascript,Math,试着教自己一些东西,结果只能半途而废。我有一些代码为我的计算机做一些数学运算,但它抛出了错误的答案,因为我无法将它四舍五入到小数点后2位。我希望有人能帮忙 示例:在“秒”输入中输入34,“小数点”将为.57 这是小提琴上的链接 这里是javascript,我知道这就是问题所在 $(document).ready ( function() { $('#min').keyup(calculate); $('#sec').keyup(calculate); $('#dec').keyup(

试着教自己一些东西,结果只能半途而废。我有一些代码为我的计算机做一些数学运算,但它抛出了错误的答案,因为我无法将它四舍五入到小数点后2位。我希望有人能帮忙

示例:在“秒”输入中输入34,“小数点”将为.57

这是小提琴上的链接

这里是javascript,我知道这就是问题所在

$(document).ready (
function() {
  $('#min').keyup(calculate);
  $('#sec').keyup(calculate);
  $('#dec').keyup(calculate);
  $('#dis').keyup(calculate);
  $('#kilo').keyup(calculate);
  $('#speed').keyup(calculate);
}))

试试这个

$('#dec').val(Math.floor(($('#sec').val() / 60) * 100) / 100);

表单控件的值始终作为字符串返回。大多数算术运算都会将它们转换为数字,但不会将它们转换为
+
,如果任何参数是字符串,则会进行串联,因此

 $('#dis').val($('#min').val() + $('#dec').val());
不进行串联,而不是加法

要将数字四舍五入到固定的位数,请使用toFixed。示例代码(我认为为此放弃jQuery更简单、更高效):

一些HTML:

<form id="f0" onkeyup="calculate(event);">
  <table>
    <tr><td>Min:<td><input type="text" name="min">
    <tr><td>Sec:<td><input type="text" name="sec">
    <tr><td>Dec:<td><input type="text" name="dec">
    <tr><td>Dis:<td><input type="text" name="dis">
    <tr><td>Km:<td><input type="text" name="kilo">
    <tr><td>Speed:<td><input type="text" name="speed">
  </table>
</form>

最小值:
证券交易委员会:
12月:
数字化信息系统:
公里:
速度:

使用正常的四舍五入方法有什么问题(当然,除了它实际上不起作用之外)?这样做可以节省一些代码:$('input')。keyup(calculate);要设置浮点的显示格式,您可以使用myNumber.toFixed(2)。您应该只在末尾进行四舍五入,因此首先计算值,然后在显示时进行四舍五入。答案应包括解释OP代码不起作用的原因以及您的答案解决问题的原因。
function calculate(evt) {
  var el = evt.target || evt.srcElement;
  var f = el.form;

  if (!f) return;

  // Division converts strings to numbers
  var dec = f.sec.value / 60;

  // Use unary + to convert strings to numbers for addition
  var dis = +f.min.value + +f.dec.value;

  // Dispaly values to 2 decimal places (or round if preferred)
  f.dec.value = dec.toFixed(2);
  f.dis.value = dis.toFixed(2);
  f.kilo.value = (60 / dis).toFixed(2);
}
<form id="f0" onkeyup="calculate(event);">
  <table>
    <tr><td>Min:<td><input type="text" name="min">
    <tr><td>Sec:<td><input type="text" name="sec">
    <tr><td>Dec:<td><input type="text" name="dec">
    <tr><td>Dis:<td><input type="text" name="dis">
    <tr><td>Km:<td><input type="text" name="kilo">
    <tr><td>Speed:<td><input type="text" name="speed">
  </table>
</form>