2012-06-20 12 views
20

मैं एक ऐसा फ़ंक्शन बनाना चाहता हूं जो एक दर्ज मूल्य लेता है और इसे वैज्ञानिक नोटेशन में परिवर्तित करता है (एन x 10^ए)मैं संख्याओं को वैज्ञानिक नोटेशन में कैसे परिवर्तित कर सकता हूं?

मैंने कई अलग-अलग चीजों की कोशिश की है, लेकिन मुझे यह सही नहीं लगता है।

उदाहरण:

मैं 200 दर्ज कनवर्टर में बदल देता है 2 एक्स 10^2

+2

हमें दिखाएं कि आपने क्या प्रयास किया है। –

+0

अधिक विशिष्ट जानकारी भी पसंद करेंगे। यानी अधिकतम कितने महत्वपूर्ण अंक हैं? 2,121,212 -> 2 एक्स 10^6 या 2.1 x 10^6 आदि आदि? मुझे लगता है कि "कट ऑफ" क्या है – Sephallia

उत्तर

50

आप कुछ इस तरह कर सकते हैं:

a = 200 
a.toExponential(); //output 2e+2 

बेला: http://jsfiddle.net/Q8avJ/9/

+1

वाह, मुझे नहीं पता था कि यह मौजूद है :) –

+0

वाह, मुझे नहीं पता था कि यह मौजूद है :) – Amadan

+1

बहुत बढ़िया! लेकिन क्या इसे एन एक्स 10^ए के रूप में बनाने का कोई तरीका है? मैं अभी भी इसके साथ कर सकता हूं, यद्यपि! – Samar

1

यदि आप इस तरह के आधार 10 प्रारूप चाहते हैं:

मीटर x 10 n

तो फिर तुम इस तरह एक समारोह का उपयोग कर सकते हैं:

function writeScientificNum(p_num, p_precision) { 
    var n = Math.round(Math.log10(a)); 
    var m = (p_num * (Math.pow(10,Math.abs(n)))).toFixed(p_precision); 
    document.getElementById("outputTxt").innerHTML = m.toString() + ' x 10<sup>' + n.toString() + '</sup>'; 
} 

यह टेस्ट आउट: http://jsfiddle.net/u1hd4zm9/

केवल अजीब बात यह है कि toFixed विधि (में कम से कम क्रोम) सटीक हिस्सों को पार नहीं करेगा, लेकिन नीचे। उदाहरण के लिए यदि आप यह कोड चलाते हैं:

var test = 2.55; 
alert(test.toFixed(1)); 

यह आपकी अपेक्षा की तरह '2.5' और '2.6' नहीं प्रिंट करेगा। लेकिन यदि आप इस कोड को चलाएँ:

var test = 2.5; 
alert(test.toFixed(0)); 

यह प्रिंट 3. ताकि के बारे में पता किया जाएगा।

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