在javascript中格式化十进制

时间:2013-11-11 23:02:54

标签: javascript decimalformat

我想将十进制值格式化为特定格式  1.23应使用javascript显示为0001.23。是否有任何特定的函数,如toPrecision(),tofixed()在javascript中处理这些格式或任何指针继续任何解决方案? 这里的十进制前面是动态的。 例如 : 我有2个值: 第一个值:99.4545 第二个值:100.32 在第二个值中,在十进制之前具有更高的长度(3),并且在十进制之后第一个值具有更高的长度(4)。所以减去的结果(0.8655)应格式化为###。####(000.8685)

谢谢

3 个答案:

答案 0 :(得分:0)

如果你想将一些0加到1.23上,你可以执行以下操作

var value = 1.23

value = ("0000000"+ value).slice(-7);

将-7更改为您想要的总字符串长度,包括小数点。

问题编辑后添加

以上内容应该在编辑前处理您的问题,但对于其他内容,您需要这样的内容。

var formatNum = function (num, preLen, postLen) {
  var value = num.split("."),
  padstring = "0";
  padLen = (preLen > postLen)?preLen:postLen;

  for (i = 0; i < padLen; i++) {
     padstring += padstring;
  }
  if (typeof(value[1]) === "undefined") {
    value[1] = "0";
  }

  return ((padstring + value[0]).slice(-preLen)+ "." + (value[1] + padstring).substring(0,postLen));
}

这将获取您想要格式化的数字以及您希望每个字符串位于“。”两侧的长度。它还处理整数的情况。

如果您希望它输出任何其他情况,例如返回一个整数,则必须将其添加。

答案 1 :(得分:0)

只需制作一个能够满足你想要的功能。以下是您可以扩展的示例。

function pad(num, padSize){
  var numString = "" + num.split('.')[0];
  if(num.length < padSize){
    var numZeroes = padSize-num.length;
    var zeroes = "";
    while(numZeroes){zeroes += "0"; numZeroes--;}
    return zeroes + num;
  }else return num;
}

答案 2 :(得分:-2)

尝试使用字符串,例如“000”+某些值