javascript中的天花板十进制格式

时间:2013-05-08 01:19:33

标签: javascript regex ceiling

我想获得指定的格式编号.. 帮我PLZ ..

我做了功能

    function ceilingAbsolute(inVal, pos){

        var digits = Math.pow(10, pos);

        var num = 0;

        var patten = "[0-9]{"+pos+"}$";
        var re = new RegExp(patten, "");

        num = inVal.replace(re);

        num = num * digits;

        return num;
}



var testVal = ceilingAbsolute(255555, 3) ;

我预计testVal = 255000,但得到“255undefined” ..

我想获得天花板deciaml数字..

有人请帮助..

2 个答案:

答案 0 :(得分:6)

您获得255undefined的原因是您没有将替换值与正则表达式一起传递给replace函数。为什么不这样做:

function ceilingAbsolute(inVal, pos){
    var digits = Math.pow(10, pos);
    return parseInt(inVal / digits) * digits;
}

答案 1 :(得分:0)

你也可以这样做:

function absFloor(num, pos) {
  num += '';
  var len = num.length;
  if (pos < len) {
    return num.substring(0,len-pos) + ('' + Math.pow(10, pos)).substring(1);
  }
}

它可以减少到两行,但我认为测试很重要:

function absFloor(num, pos) {
  num += '';
  return num.substring(0,num.length-pos) + ('' + Math.pow(10, pos)).substring(1);
}