哪位大神写过啊,JS实现

解决方案 »

  1.   

    百度了一下大概知道啥意思了,现在居然有这玩意儿了。。简单写了一个,只支持小数取整 function round(num){
    var mod = num % 1;
    if(mod > 0.5){
    return Math.ceil(num);
    }else if(mod < 0.5){
    return Math.floor(num);
    }
    var digit = Math.floor(num) % 10;
    if(digit % 2 === 0){
    return Math.floor(num);
    }else{
    return Math.ceil(num);
    }
    }
      

  2.   

    这个是支持保留小数位的,第一个参数是要处理的数字,第二个参数是要保留的小数位数 function round(num, digit){
    var ratio = Math.pow(10, digit),
    _num = num * ratio,
    mod = _num % 1,
    baseDigit = 0;
    if(mod > 0.5){
    return (_num - mod + 1) / ratio;
    }else if(mod < 0.5){
    return (_num - mod) / ratio;
    }
    var baseDigit = Math.floor(_num) % 10;
    if(baseDigit % 2 === 0){
    return (_num - mod) / ratio;
    }else{
    return (_num - mod + 1) / ratio;
    }
    }
      

  3.   

    简化下 function round(num, digit){
    var ratio = Math.pow(10, digit),
    _num = num * ratio,
    mod = _num % 1,
    integer = Math.floor(_num);
    if(mod > 0.5){
    return (integer + 1) / ratio;
    }else if(mod < 0.5){
    return integer / ratio;
    }else{
    return (integer % 2 === 0 ? integer : integer + 1) / ratio;
    }
    }