首页 > 解决方案 > 如何将前导零的数字转换为字符串并保留原​​始数字

问题描述

我正在尝试将数字前导 0 转换为字符串。

例如

变量 x = 01127160037

但是当我将它转换为字符串时,它变成了 157081631

<script>
function myFunction() {
  var x = 01127160037;
  var res = x.toString();
  console.log(res)
}
myFunction();
</script>

我期望在字符串中得到实际结果为“01127160037”。

标签: javascript

解决方案


使用前导零,您使用八进制数。要获得小数,您需要转换回八进制并获取此字符串。

如果您得到的值不能是八进制数,请检查字符串值是否包含 8 或 9,并取该值而不进行转换。

const convert = n => '0' + (/[89]/.test(n.toString())
        ? n.toString()
        : n.toString(8)
    );

console.log(convert(01127160037));
console.log(convert(01127160038));


推荐阅读