-1

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

谢谢你

4

3 回答 3

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));
}

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

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

于 2013-11-11T23:10:22.740 回答
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;
}
于 2013-11-11T23:14:42.127 回答
-2

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

于 2013-11-11T23:05:54.490 回答