【问题标题】:JavaScript: Keeping the leading zero in a number [duplicate]JavaScript:在数字中保留前导零 [重复]
【发布时间】:2015-04-28 14:09:36
【问题描述】:

我在下面有这个简单的功能。我正在传递一个带有前导零的数字作为参数,并且前导零被从数字中删除。如果不将数字作为字符串传递,如何防止这种情况发生?那可能吗?

function someFunction(number){
      console.log(number); // 25468 <--- leading zero removed
    }

    // pass in a number with leading zeros
    someFunction(025468);

【问题讨论】:

  • 您必须将其作为字符串 someFunction('025468'); 发送,然后在需要时将其解析为数字以进行计算
  • 为什么重要?该数字具有相同的值,带或不带前导零。如果需要格式化显示,好吧,显示的时候格式化
  • 这几乎肯定是一个 XY 问题。你想达到什么目标?
  • 目标本身就是一件愚蠢的事情;你几乎肯定会尝试做一些你认为这会有所帮助的其他事情。但是你问的字面意思是不可能的,所以你需要用另一种方式来实现你的最终目标。

标签: javascript


【解决方案1】:

如果不将数字作为字符串传递,如何防止这种情况发生?这可能吗?

没有。前导零在 the number system / representation JS uses 中没有意义,因此它们不存储在数字的内部表示中。

(或者,如果你更喜欢,一个数字有无限的前导零)

【讨论】:

  • 实际上它们很重要。 012 != 12。在严格模式下会抛出错误。
  • 我假设您在谈论数字文字,是的,它们在那里很重要。我说的是数字 values。
  • 是的。但是 OP 想要传递数字文字。不管怎样,他想要一些奇怪的东西
  • “但是 OP 想要传递数字文字。” 嗯,这只是创建数字值的最常用方法。我试图解释为什么这是不可能的。如果前导零对数字系统很重要,那么肯定会有一种方法可以通过数字文字来表示它们。即使您没有使用数字文字,而是使用转换为数字的字符串,例如Number("0005"),您将无法“存储”前导零,这表明无法在数字文字中使用前导零并不是数字文字语法本身的缺点。
  • @istos “使用严格”,卢克 :)
【解决方案2】:

默认情况下,如果将其存储为 int,则不会获得前导数字。如果要获取前导零,则需要将其作为字符串发送。 否则不可能

【讨论】:

  • 重新阅读我的问题。我不想将它作为字符串发送。
  • 重新阅读我们的答案。无法按照您在问题中提出的要求进行操作。
  • "如果不将数字作为字符串传递,如何防止这种情况发生?"
  • @shmuli:- 你能解释一下,如果这对你很重要,就像其他人提到的那样,我也同意在当前不可能实现你想要的您问题的背景。
  • @FelixKling:- 删除了那部分。谢谢!
猜你喜欢
  • 1970-01-01
  • 2022-01-04
  • 2013-08-11
  • 2023-01-22
  • 2018-04-26
  • 1970-01-01
  • 2012-04-21
  • 2020-06-11
  • 1970-01-01
相关资源
最近更新 更多