如何将数字010转换为字符串“010”

时间:2016-02-12 10:35:46

标签: javascript

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

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

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

5 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:5)

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

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

它的工作原理没有数字包装,

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

答案 2 :(得分:3)

使用以下代码:

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

更通用的解决方案:

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

toStringOctal(010) // return "010"

但请注意,严格模式八进制表示法0<number>不允许使用。

答案 3 :(得分:1)

var num = 10;
var string = "0" + num.toString();
console.log(string);//gives you "010"

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

答案 4 :(得分:1)

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

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

然后您可以随时调用转换功能。