JavaScript将int转换为String

时间:2014-04-08 09:10:16

标签: javascript string int type-conversion

我在JavaScript中面临奇怪的转换:

    function getFromDatabase(){
      //the result may be gotten from database or some complex methods and CANT be changed!
      return 000000;
    }

    var param = getFromDatabase();
    alert(param);// -> 0        
    alert(param.toString());// -> 0         
    alert("" +param + "");// -> 0       

如何获得000000或n#34; 000000" ?

3 个答案:

答案 0 :(得分:1)

如果要将000000与0区分开来,则不能。在离开函数之前,000000被“转换”为0。

如果要打印前导零,请尝试类似

的内容
function intToLeadingZerosString(myint){
  var s= myint.toString(10);
  return Array( 6-s.length+1 ).join("0") + s;
}
alert(intToLeadingZerosString(param));

或者:

Number.prototype.toStringLeading = function() {
   var s = this.toString(10);
   return Array( (arguments.length?arguments[0]:6)-s.length+1 ).join("0") + s;
};
alert(param.toStringLeading(6));
alert(param.toStringLeading());

答案 1 :(得分:0)

为什么不在返回时将其转换为字符串? 因为,return语句发送的值将通过" copy by value"的概念返回。它也通过复制它(即按值复制)分配给param。因此,000000转换为0.之后,将其转换为String将是" 0"。

    function getFromDatabase(){
      return '000000'; 
    }

    var param = getFromDatabase();      
    alert(param);// -> 000000         
    alert(isNaN(param)?"":parseInt(param));// -> 0

以字符串形式返回,然后根据需要将其转换为int。这将是处理场景的最佳方式。

答案 2 :(得分:0)

因为你的函数返回'int'值。 尝试更改return '000000';