我正在尝试将字符串转换为数字,即"09"
parseInt('09') //returns 9 always
Run Code Online (Sandbox Code Playgroud)
获得前导零的数字的最佳方法是什么?如果有人解释,为什么设计的parseInt以不关心前导零的方式会更好.
一个int不能有前导零,因为它们没有任何数学意义.
为了存储数字,语言使用二进制表示(不要忘记最后一切都是0和1).对于9,99或00009,此表示形式相同.当必须打印数字时,它将转换回字符串表示形式,因此您将丢失前导零.
如果您需要存储/记住0,您唯一的选择是存储数字的字符串表示.
您可以做的是存储数字和字符串表示,如下所示:
function MyInt(s){
this.asString = s;
this.num = parseInt(s);
}
var i = new MyInt("09");
console.log(i.num); // 9
console.log(i.asString); // 09
Run Code Online (Sandbox Code Playgroud)
需注意,领先的0也没有任何价值的INT.如果想用于显示目的使用字符串和计算部分使用 parseInt(someval)