【问题标题】:How do I retain leading zeroes in an Integer/Number in JavaScript?如何在 JavaScript 中保留整数/数字中的前导零?
【发布时间】:2023-01-22 21:07:05
【问题描述】:

我试图在 JavaScript 中保留整数/数字中的前导零。

在这个例子中,我有一个“ItemName”键,它有一个字符串或一个整数作为它的值。

我只想将整数作为值,但是当我尝试将任何字符串值转换为数字时,它会删除前导零。

我需要保留零,以便发送的数据可靠地为 6 位数字,而在示例中它只会是 4 位数字。

该值旨在成为给定项目的标识符。

{"Item": [{"ItemName":"007730","BusinessUnit":1}] } 
{"Item": [{"ItemName":917730,"BusinessUnit":1}] }

这是我的工作,我们使用 ES6,但如果有其他选择,我当然愿意接受。 提前致谢!

【问题讨论】:

  • 您只能将其作为字符串执行。因此,将 Number 类型转换为字符串并在前面填充零。当您将此数字转换回整数时,您必须删除前导零。从数学上讲,前导零对整数没有任何意义。它们可能对人类而言,因此字符串显示为零,但数字事物的数学表示不会。
  • 除了所说/解释的内容兰迪·卡斯伯恩... String.prototype.padStart
  • 顺便提一句 ...ItemName已经强烈暗示了一个字符串。无论如何,它永远不应该被分配一个像917730这样的数字值。
  • 感谢您的回复!我想我们只需要确保它们在我们的系统中都是字符串。
  • 存在八进制语法。 000023 将返回十进制数 19,所以要小心。

标签: javascript number-formatting identifier leading-zero


【解决方案1】:

在 Javascript 中不能有前导零的数字,因为正如 Randy Casburn 所说,它们没有任何价值。您必须将其转换为字符串并使用 String.padStart() 用零填充字符串。 parseInt 将使用前导零。例如:

(294).toString().padStart(6, "0") --> "000294"


parseInt("000294") --> 294

【讨论】:

    猜你喜欢
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2023-03-03
    相关资源
    最近更新 更多