2014-04-08 6 views
5
को पूर्णांक कन्वर्ट

मैं जावास्क्रिप्ट में अजीब रूपांतरण का सामना करना पड़ रहा हूँ:जावास्क्रिप्ट स्ट्रिंग

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 या "000000" कैसे मिल सकता है?

+0

'numerics में 000000' सिर्फ' दुभाषिया, जो 'param' इसके चारों ओर 0. उपयोग स्ट्रिंग, कोट धारण" बाईपास "यह – KarelG

+0

@KarelG मैं नहीं बदल सकते करने के लिए है 0' विधि जिसका अर्थ है कि मैं परिणाम बदल नहीं सकता। –

उत्तर

1

यदि आप 0 से 000000 को अलग करना चाहते हैं, तो आप नहीं कर सकते। समारोह छोड़ने से पहले 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()); 
0

क्यों आप इसे स्ट्रिंग में कनवर्ट न करें? क्योंकि, रिटर्न स्टेटमेंट द्वारा भेजा गया मूल्य "मूल्य द्वारा प्रतिलिपि" की अवधारणा द्वारा वापस किया जाएगा। इसके अलावा इसे प्रतिलिपि बनाकर परम को सौंपा गया है (यानी मूल्य द्वारा प्रतिलिपि)। तो, 000000 केवल 0 तक परिवर्तित हो जाता है। इसके बाद, इसे स्ट्रिंग में परिवर्तित करना "0" होगा।

function getFromDatabase(){ 
     return '000000'; 
    } 

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

स्ट्रिंग के रूप में लौटें और बाद में आवश्यक होने पर इसे int में परिवर्तित करें। यह आपके परिदृश्य को संभालने का सबसे अच्छा तरीका होगा।

0

क्योंकि आपका फ़ंक्शन 'int' मान देता है। बदलने की कोशिश पर return '000000';

+0

मैं उस विधि को नहीं बदल सकता जिसका अर्थ है कि मैं परिणाम बदल नहीं सकता। –

संबंधित मुद्दे