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