Javascript 舍入十进制值,如果十进制值大于或等于 25,则四舍五入值加一个其他明智值保持原样

Javascript roundup decimal values if decimal value is greater than or equal to 25 then round up value by plus one other wise remain as it is

本文关键字:十进制 其他 一个 四舍五入 大于 如果 舍入 Javascript      更新时间:2023-09-26

我想在 JavaScript 中四舍五入一个十进制值。我需要如下功能:

如果十进制值大于或等于 25,那么我想将一个值四舍五入加一。

eg. if value  = 5.56789 then new value should be 6

我知道使用条件是可能的。

我已经完成了使用如下所示的if条件:

    <!DOCTYPE html>
    <html>
    <body>
    <p>Click the button to display the fixed number.</p>
    <button onclick="myFunction()">Try it</button>
    <p id="demo"></p>
    <script>
    function myFunction() {
        var num = 5.24389;
        var n = num.toFixed(2)
        var num_arr = n.split('.');
        var newval = num_arr[0];
        if(num_arr[1] >= 25)
        {
           newval++;
        }
        document.getElementById("demo").innerHTML = newval;
    }
    </script>
    </body>
    </html>

但我不想使用任何条件。

那么有没有像我的例子一样的JavaScript函数呢?

任何帮助将不胜感激!!

所以这里的问题是你如何移动舍入点,使其.25而不是.50。基本思想是您需要减去 .25 并向四舍五入到最接近的整数。

如果我们处理两个十进制最大值,这很简单,我们减去.24并使用 ceil() .

function roundUpOverQuarter(num) {
    return Math.ceil(num - .24);
}
console.log("1", roundUpOverQuarter(1));
console.log("1.24", roundUpOverQuarter(1.24));
console.log("1.25", roundUpOverQuarter(1.25));
console.log("1.5", roundUpOverQuarter(1.5));

现在上面的代码使用"货币"值,只有两位小数。要处理大于两位小数,它需要更多的数学运算。您需要首先将其切成两位小数,方法是将数字向上移动两个,将其下移,以降低小数,然后将数字移回,以便我们可以遵循与上面相同的过程。

function roundUpOverQuarter(num) {
    num = Math.floor((num*100))/100;
    return Math.ceil(num - .24);
}
console.log("1", roundUpOverQuarter(1));
console.log("1.24", roundUpOverQuarter(1.24));
console.log("1.25", roundUpOverQuarter(1.25));
console.log("1.5", roundUpOverQuarter(1.5));
console.log("1.24999", roundUpOverQuarter(1.24999));  //would fail with the first solution