【问题标题】:How to convert a number 010 to a string "010"如何将数字 010 转换为字符串“010”
【发布时间】:2016-02-12 21:35:49
【问题描述】:

在控制台中执行一些随机表达式时,我发现

010 + ""返回8(甚至011,0100..正在通过考虑八进制数系统返回结果)

如果我想将数字010 转换为字符串"010",我该怎么做?不仅适用于010,而且适用于每个类似的数字。我设法为这个here 找到了一种类似的解释。但这并不能解释如何将其转换为精确的字符串版本。

【问题讨论】:

  • 你试过toString函数
  • number.toString() ?
  • @BipBip , Jay : "+" 在遇到字符串时基本上会在内部执行.toString()010 + "" 等于 (010).toString() 在您的控制台中进行快速测试。
  • 您应该将数字转换为字符串并将其作为字符串进行操作。 num.toString() 应该适合你。
  • 假设它首先将数字转换为字符串,因为它是二进制格式,它将它转换为(010.toString() = 8)

标签: javascript


【解决方案1】:

在 Javascript 中,010 是八进制文字并转换为十进制文字中的 8。事实上,你应该避免它,因为严格模式不允许使用它。

除了解析函数体字符串,没有办法区分八进制和十进制:)

【讨论】:

    【解决方案2】:

    首先通过调用toString() 方法获取一个字符串,在这种情况下基数是8

    Number(010).toString(8); //outputs "10"
    

    它也可以在不包含 Number 的情况下工作,

    010.toString(8); //outputs "10"
    

    如果您知道原始数字的长度,请使用此方法填充 0

    function pad(n,digits){return n<Math.pow(10, digits) ? '0'+n : n}
    

    所以

    pad(Number(010).toString(8),3); //3 is the number of digits
    

    【讨论】:

    • 不需要(在我的测试中),包裹在Number()010.toString(8)
    • 另外,我不确定填充是否适用于010 的 OP 输入。
    • @DavinTryon 进行了更改以传递位数,谢谢
    【解决方案3】:

    使用以下代码:

    "0" + (010).toString(8)  // "010"
    "0" + (0111).toString(8) // "0111"
    

    还有一个更通用的解决方案:

    function toStringOctal(number) {
      return "0" + number.toString(8);
    }
    
    toStringOctal(010) // return "010"
    

    但请注意,在严格模式中不允许使用八进制符号0&lt;number&gt;

    【讨论】:

      【解决方案4】:
      var num = 10;
      var string = "0" + num.toString();
      console.log(string);//gives you "010"
      

      正如本文的 cmets 中所述,它不会直接转换 010,但会构建一个字符串。不是最优雅的解决方案。

      【讨论】:

      • 0111/010001 等呢?
      • 只是做同样的事情,但使用新号码,所以var num = 111var num = 10001
      【解决方案5】:

      如果您希望将多个相似的数字转换为字符串,您还可以构建一个简单的函数,在调用时完成这项工作:

      function convertSomething(number) {
          var string = "" + number;
          return string
      }
      

      然后,您可以在需要时调用您的转换函数。

      【讨论】:

        猜你喜欢
        • 2011-03-26
        • 1970-01-01
        • 1970-01-01
        • 2013-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多