【问题标题】:jQuery round number only if decimal is greater than x仅当小数大于 x 时 jQuery 舍入数
【发布时间】:2015-02-18 13:16:16
【问题描述】:

所以我有这两个输入[文本]字段:

<input type="text" id="CM" size="2" maxlength="5">

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

还有这个 jQuery 代码:

<script type="text/javascript">
        $('#CM').keyup(function(){
        $total = ($('#CM').val() * 3) / 2;
        $('#CM2').val($total);
        });
</script>

这只是一个简单的数学运算,我需要稍微调整一下,但我被卡住了。

仅当第一个十进制数大于或等于 3 时,我才需要向上舍入 $total 变量。否则,向下舍入 $total。

所以,如果 $total = 3,3;我需要四舍五入到 4。 否则,如果 $total = 3,2;我需要四舍五入到 3。

有人可以帮忙吗? 谢谢!

【问题讨论】:

    标签: jquery numbers decimal rounding


    【解决方案1】:

    尝试使用提醒获取第一个小数

    $('#CM').keyup(function() {
      var $total = ($('#CM').val() * 3) / 2;
      $('#CM2').val(($total * 10 % 10 <= 3) ? Math.floor($total) : Math.ceil($total));
    
      //just to display the actual total
      $('#actual').val($total)
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <input type="text" id="CM" size="2" maxlength="5">
    <input type="text" id="CM2" readonly>
    
    <input type="text" id="actual" readonly>

    【讨论】:

    • 太棒了,感谢您的快速输入!效果很好,正是我想要的。我刚刚将其编辑为 [...] $total *10 % 10
    【解决方案2】:
    $('#CM').keyup(function(){
            $total = ($('#CM').val() * 3) / 2;
    
            if (($total-parseInt($total)) >= 0.3)  {
                $total = parseInt($total) + 1;
            } else {
                $total = parseInt($total);
            }
            $('#CM2').val($total);
     });
    

    如果值大于 .3,则解析 + 1。如果不是,则仅解析。

    【讨论】:

    • 感谢您的意见,但我会坚持 Arun P Johny 的回答!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 2019-10-23
    • 2015-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多