javascript中的上限十进制格式

javascript中的上限十进制格式,javascript,regex,ceil,Javascript,Regex,Ceil,我想获取指定的格式编号。。 请帮帮我 我做了一个函数 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);

我想获取指定的格式编号。。 请帮帮我

我做了一个函数

    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”

我想要一个电话号码


请有人帮忙。

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

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

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

function ceilingAbsolute(inVal, pos){
    var digits = Math.pow(10, pos);
    return parseInt(inVal / digits) * digits;
}
您还可以执行以下操作:

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 += '';
  var len = num.length;
  if (pos < len) {
    return num.substring(0,len-pos) + ('' + Math.pow(10, pos)).substring(1);
  }
}

为什么在这里使用正则表达式,哦,为什么?类型错误:对象255555没有“替换”方法。您选择了
3
作为一个
6
位长的示例,我假设为
ceilingAbsolute(255555,2)
您期望的
255500
。//elclars只是,我知道正则表达式:-)//麦理斯哦。。我需要字符串类型。。;;非常感谢。为什么在这里使用正则表达式,哦,为什么?类型错误:对象255555没有“替换”方法。您选择了
3
作为一个
6
位长的示例,我假设为
ceilingAbsolute(255555,2)
您期望的
255500
。//elclars只是,我知道正则表达式:-)//麦理斯哦。。我需要字符串类型。。;;非常感谢。如果您使用的是
Math.pow(10,pos)
两次,您还可以缓存它。。你真是太可笑了!!我编辑了答案,因为你接受了它,将其截断,而不是四舍五入到最接近的10次方,因为这是你期望的输出。如果你使用
Math.pow(10,pos)
两次,你最好缓存它。哇。。你真是太可笑了!!我编辑了答案,因为您接受了它,将其截断,而不是四舍五入到最接近的10次方,因为这是您期望的输出。