为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 0.5 以外的其他阈值处舍入数字

如何在 0.5 以外的其他阈值处舍入数字

Qyouu 2023-02-24 16:20:40
我将如何更改此代码,以便可以将数字 7 替换为 7 到 16 之间的任何数字?    var lvalue = $( ".leave-input" ).val();    if (lvalue <=  7.29) {      lvalue = roundDown();    } else if (lvalue >= 7.3) {      lvalue = roundUp();    }我正在尝试将用户输入的时间舍入最近的时间。我在使用时间时遇到了麻烦,所以现在只使用他们输入的数字。为了澄清而不是为每个数字 7、8、9 等都有一个 if 语句。有没有办法重写当前代码,以便“7”可以是 7 到 16 之间的任何数字?
查看完整描述

4 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

如果添加0.2到该值,则可以使用Math.round():


input.oninput = function() {

  let lvalue = +document.getElementById('input').value + 0.2;

  document.getElementById('output').innerHTML = Math.round(lvalue);

}

<input id="input" type="text">

<div id="output"></div>


查看完整回答
反对 回复 2023-02-24
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您可以使数字小于 1,那么它应该适用于所有情况:


let lvalue = $(".leave-input").val();

const baseValue = Math.round((lvalue - Math.floor(lvalue)) * 100) / 100;

if (baseValue<= 0.29) {

    lvalue = roundDown();

} else if (baseValue>= 0.3) {

    lvalue = roundUp();

}

这是一个工作示例:


function calculate() {


  let lvalue = Number(document.getElementById('input').value)

  const baseValue = Math.round((lvalue - Math.floor(lvalue)) * 100) / 100;

  if (baseValue <= 0.29) {

    lvalue = Math.floor(lvalue);

  } else if (baseValue >= 0.3) {

    lvalue = Math.ceil(lvalue);

  }


  document.getElementById('output').innerHTML = lvalue;

}

<input id="input" type="text" />

<button onClick="calculate()">Round</button>

<div id="output"></div>


查看完整回答
反对 回复 2023-02-24
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

$(".leave-input").change(function(){

  let lvalue = parseFloat($(".leave-input").val());

  const val = lvalue * 100 % 100 ;                

  if (val <= 29) {

      lvalue = Math.floor(lvalue);//roundDown();

  } else {//your condition will skip anything between .29 and .30

      lvalue = Math.ceil(lvalue);//roundUp();

  }

  $(".result").html(lvalue);

})

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input class="leave-input" />

<div class="result"></div>


查看完整回答
反对 回复 2023-02-24
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

let lvalue = $(".leave-input").val();


const integer = Math.trunc(lvalue);

const decimal = lvalue % 1;// or you could do lvalue - interger

if (integer >= 7 && integer <= 16) {

    if (decimal <= 0.29) {

        lvalue = roundDown();

    } else if (decimal >= 0.3) {

        lvalue = roundUp();

    }

}


查看完整回答
反对 回复 2023-02-24
  • 4 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信