【问题标题】:how can round the number in specific format? [duplicate]如何以特定格式舍入数字? [复制]
【发布时间】:2016-05-03 13:45:17
【问题描述】:

我想在jquery中以特定格式对数字进行四舍五入

例如

var First = 3.52

如果小数点 2 后的最后一个值小于 3,则应四舍五入为 0

如果小数点 2 后的最后一个值介于 3 到 7 之间,则应该四舍五入到 5

如果小数点 2 后的最后一个值大于 7,则应该四舍五入到 10

喜欢

if(var First = 1.21) { var Answer = 1.20 }
if(var First = 1.24) { var Answer = 1.25 }
if(var First = 1.28) { var Answer = 1.30 }

我试过 Round 和 Ceil , Floor 但不适合我

【问题讨论】:

    标签: javascript jquery rounding


    【解决方案1】:

    要实现这一点,您可以使用Math.round() 到最接近的 0.05,如下所示:

    Math.round(number * 20) / 20;
    

    为方便起见,您可以将其提取到一个函数中:

    console.log(round(1.21)); // = 1.20
    console.log(round(1.24)); // = 1.25
    console.log(round(1.28)); // = 1.30
    
    function round(num) {
      return (Math.round(num * 20) / 20).toFixed(2);
    }

    注意使用toFixed(2) 将结果强制保留2 位小数。请注意,此方法返回一个字符串,因此如果您打算使用该值进行任何计算,则需要通过parseFloat() 运行结果。

    【讨论】:

    • 并将其与 toFixed 结合起来:[1.21, 1.24, 1.28, 3.52].map(v => (((v*20)|0)/20).toFixed(2))
    • @DenysSéguret 谢谢,错过了对 2dp 的强制。
    猜你喜欢
    • 2011-05-14
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多