当前位置: 首页 > 面试题库 >

JavaScript如何用前导零填充值?

鲁炳
2023-03-14
问题内容

在JavaScript中建议零填充值的推荐方法是什么?我想我可以构建一个自定义函数以将零填充到类型转换值上,但是我想知道是否有更直接的方法来做到这一点?

注意: “零填充”是指该词在数据库中的含义(其中数字5的6位零填充表示为“ 000005”)。


问题答案:

正如评论员所指出的那样,该解决方案是“聪明的”,而且通常就像聪明的解决方案一样,它占用大量内存并且相对较慢。如果您担心性能,请不要使用此解决方案!

可能已过时:自ECMAScript 3.1起,ECMAScript2017包含 String.prototype.padStart和 Number.prototype.toLocaleString。例:

var n=-0.1;
n.toLocaleString('en',

{minimumIntegerDigits:4,minimumFractionDigits:2,useGrouping:false})

…将输出“ -0000.10”。

// or
const padded = (.1+"").padStart(6,"0");
`-${padded}`

…将输出“ -0000.1”。

您只需一个简单的功能

function zeroFill( number, width )
{
  width -= number.toString().length;
  if ( width > 0 )
  {
    return new Array( width + (/\./.test( number ) ? 2 : 1) ).join( '0' ) + number;
  }
  return number + ""; // always return a string
}

如果您想保留名称空间或其他内容,可以将其拷贝到库中。就像jQuery的extend一样。



 类似资料:
  • 问题内容: Javascript的parseInt函数似乎无法完全正常工作。 问题答案: 这是因为如果数字以“ 0”开头,则将其视为以8为基数(八进制)。 您可以通过将base作为第二个参数来强制使用base。 根据docs,第二个参数是可选的,但并不总是假定为10,如您从示例中看到的那样。

  • 问题内容: 给我数组数据的二进制String表示形式。 但是,我想要一种添加前导零的简单方法,因为等于零的字节数组为我提供了“ 0”字符串。 我想要这样的一线客: 是正确的方法吗?如果是,我应该使用什么字符串?提前致谢! 编辑:数组是动态长度,因此前导零的数目也应如此。 问题答案: 对于使用5个前导零填充,这将起作用: 您没有指定字符串的预期长度,在上面我使用5的示例代码中,将其替换为适当的值。

  • 问题内容: 抱歉,如果已经提出此问题,我已经进行了深入搜索,什么也没有。 现在,我知道: 会将我的价格填充到左侧的零,因此价格为25将得出 00025 如果我想将它们向右填充,结果是 25000 怎么办?我该如何 仅 使用 String.format 模式呢? 问题答案: 您可以使用: 我可以只使用格式模式吗? 就像方法一样使用。从这篇文章中,您将看到输出空间是硬编码的,因此必须使用。

  • 问题内容: 在数组末尾加零的更Python方式是什么? 在我的实际用例中,实际上我想将数组填充到最接近的1024倍数。例如:1342 => 2048,3000 => 3072 问题答案: 使用mode可以满足您的需要,在这里我们可以传递一个元组作为第二个参数来告诉每个大小要填充多少个零,例如a将在左边填充 2个 零,在右边填充 3个 零: 给出为: 也可以通过将元组的元组作为填充宽度来填充2D n

  • 抱歉,如果这个问题已经提出,我已经做了深入的搜索,什么都没有。 现在,我知道: 会在左边用0填充我的价格,所以25的价格会导致00025 如果我想把它们垫在右边,结果是25000呢?如何仅使用String.format模式?

  • 问题内容: 我正在使用DecimalFormat将双精度格式设置为2个小数位,如下所示: 它可以工作,但是如果我有一个像20这样的数字,它就给我这个: 我想要这个: 有什么建议? 问题答案: DecimalFormat类用于将十进制数字值转换为String。在您的示例中,您将使用来自format()方法的String并将其放回double变量中。如果然后输出该double变量,则不会看到格式化的字