जवाबों:
toFixed(n)
n
दशमलव बिंदु के बाद लंबाई प्रदान करता है ; कुल लंबाई toPrecision(x)
प्रदान करता है x
।
W3schools पर रेफरी करें: फ़िक्स्ड और टोप्रिसे
संपादित करें :
मैंने कुछ समय पहले सीखा कि w3schools वास्तव में सबसे अच्छा स्रोत नहीं है, लेकिन मैं इस उत्तर के बारे में भूल गया जब तक कि मैंने kzh's, uh, "उत्साही" टिप्पणी नहीं देखी। यहाँ मोज़िला डॉक्टर केन्द्र से अतिरिक्त refs हैं के लिएtoFixed()
और के लिएtoPrecision()
। सौभाग्य से हम सभी के लिए, MDC और w3schools इस मामले में एक दूसरे से सहमत हैं।
पूर्णता के लिए, मुझे इस बात का उल्लेख करना चाहिए कि toFixed()
यह समतुल्य है toFixed(0)
और toPrecision()
केवल मूल स्वरूप को बिना किसी स्वरूपण के लौटाता है।
toPrecision(x)
" x
कुल लंबाई प्रदान नहीं करता है ", यह दिए गए महत्वपूर्ण अंकों की संख्या को प्रारूपित करता है। उदाहरण के लिए, 0.0000022.toPrecision(1)
लौटेगा 0.000002
।
toPrecision(x)
प्रदान करता है x
।" जरूरी नहीं कि पकड़ हो। काउंटर उदाहरण:0.00001234.toPrecision(3)
मेरा मानना है कि पूर्व आपको एक निश्चित संख्या में दशमलव स्थान देता है, जबकि उत्तरार्द्ध आपको निश्चित संख्या में महत्वपूर्ण अंक प्रदान करता है।
Math.PI.toFixed(2); // "3.14"
Math.PI.toPrecision(2); // "3.1"
इसके अलावा, यदि निर्दिष्ट परिशुद्धता की तुलना में संख्या में अधिक पूर्णांक अंक हैं, तो वैज्ञानिक अंकनtoPrecision
प्राप्त होगा ।
(Math.PI * 10).toPrecision(2); // "31"
(Math.PI * 100).toPrecision(2); // "3.1e+2"
संपादित करें: ओह, और यदि आप जावास्क्रिप्ट के लिए नए हैं, तो मैं डगलस ब्रॉकफोर्ड की पुस्तक " जावास्क्रिप्ट: द गुड पार्ट्स " की अत्यधिक अनुशंसा कर सकता हूं ।
उदाहरण स्पष्ट रूप से बोलते हैं:
var A = 123.456789;
A.toFixed() // 123
A.toFixed(0) // 123
A.toFixed(1) // 123.5
A.toFixed(2) // 123.46
A.toFixed(3) // 123.457
A.toFixed(4) // 123.4568
A.toFixed(5) // 123.45679
A.toFixed(6) // 123.456789
A.toFixed(7) // 123.4567890
A.toFixed(8) // 123.45678900
A.toFixed(9) // 123.456789000
A.toFixed(10) // 123.4567890000
A.toFixed(11) // 123.45678900000
A.toPrecision() // 123.456789
A.toPrecision(0) // --- ERROR ---
A.toPrecision(1) // 1e+2
A.toPrecision(2) // 1.2e+2
A.toPrecision(3) // 123
A.toPrecision(4) // 123.5
A.toPrecision(5) // 123.46
A.toPrecision(6) // 123.457
A.toPrecision(7) // 123.4568
A.toPrecision(8) // 123.45679
A.toPrecision(9) // 123.456789
A.toPrecision(10) // 123.4567890
A.toPrecision(11) // 123.45678900
मुझे लगता है कि यह एक उदाहरण के साथ सबसे अच्छा उत्तर दिया गया है।
मान लें कि आपके पास निम्न डेटा है:
var products = [
{
"title": "Really Nice Pen",
"price": 150
},
{
"title": "Golf Shirt",
"price": 49.99
},
{
"title": "My Car",
"price": 1234.56
}
]
आप इनमें से प्रत्येक उत्पाद को शीर्षक और स्वरूपित मूल्य के साथ प्रदर्शित करना चाहते हैं। आइए toPrecision
पहले प्रयोग करके देखें :
document.write("The price of " + products[0].title + " is $" + products[0].price.toPrecision(5));
The price of Really Nice Pen is $150.00
अच्छा लग रहा है, तो आपको लगता है कि यह अन्य उत्पादों के लिए भी काम करेगा:
document.write("The price of " + products[1].title + " is $" + products[2].price.toPrecision(5));
document.write("The price of " + products[2].title + " is $" + products[2].price.toPrecision(5));
The price of Golf Shirt is $49.990
The price of My Car is $1234.6
इतना अच्छा नहीं। हम प्रत्येक उत्पाद के लिए महत्वपूर्ण अंकों की संख्या को बदलकर इसे ठीक कर सकते हैं, लेकिन यदि हम उन उत्पादों के सरणी पर पुनरावृत्ति कर रहे हैं जो मुश्किल हो सकते हैं। toFixed
इसके बजाय उपयोग करें :
document.write("The price of " + products[0].title + " is $" + products[0].price.toFixed(2));
document.write("The price of " + products[1].title + " is $" + products[2].price.toFixed(2));
document.write("The price of " + products[2].title + " is $" + products[2].price.toFixed(2));
The price of Really Nice Pen is $150.00
The price of Golf Shirt is $49.99
The price of My Car is $1234.56
यह वही पैदा करता है जिसकी आपको उम्मीद थी। कोई अनुमान कार्य शामिल नहीं है, और कोई गोलाई नहीं है।
बस:
49.99.toFixed(5)
// → "49.99000"
49.99.toPrecision(5)
// → "49.990"
कुछ परिस्थितियों में, toPrecision()
घातीय संकेतन लौटाएगा, जबकि toFixed()
नहीं।
toExponential()
एक अलग कार्य है ।
a = 999999999999999934464;
, a.toFixed(0)
रिटर्न के साथ "1e+21"
। शायद एक अधिक सटीक उत्तर यह होगा कि जब तक स्ट्रीपिंग () नहीं होती है तब तक () फ़्लॉन्फ़िशियल नोटेशन वापस नहीं करता है।
उदाहरण के लिए, हम वैरिएबल को a, var a = 123.45 a.toPreaches (6) मानते हैं। आउटपुट 123.450 a.toFixed (6) है। आउटपुट दशमलव बिंदु के बाद 123.450000 // 6 अंक जैसा है।
दोनों toPrecision()
और toFixed()
कार्य इसे प्रिंट करने से पहले एक संख्या को प्रारूपित करने के लिए डिज़ाइन किए गए हैं। इसलिए वे दोनों String
मान लौटाते हैं।
एक अपवाद है। यदि आप एक नकारात्मक संख्या शाब्दिक पर इन कार्यों का उपयोग करते हैं , तो ऑपरेटर पूर्ववर्तीता के कारण, एक संख्या वापस आ जाती है। कि क्या इसका मतलब यह है toFixed()
या toPrecision()
स्ट्रिंग पहली बार वापस आ जाएगी, और फिर -
माइनस ऑपरेटर एक नकारात्मक मूल्य के रूप में एक संख्या के लिए स्ट्रिंग वापस परिवर्तित कर देंगे। एक उदाहरण के लिए नीचे देखें।
toPrecision()
रिटर्न एक String
निश्चित बिंदु या घातीय संकेतन में संख्या वस्तु का प्रतिनिधित्व करने के लिए महत्वपूर्ण अंक गोल। इसलिए यदि आप निर्दिष्ट करते हैं कि आप 1 की परिशुद्धता चाहते हैं, तो यह महत्वपूर्ण अंक के साथ 10 या पिछले 0 की शक्तियों को इंगित करने के लिए वैज्ञानिक अंकन के साथ पहली महत्वपूर्ण संख्या लौटाता है यदि महत्वपूर्ण संख्या <0 है।
const num1 = 123.4567;
// if no arguments are passed, it is similar to converting the Number to String
num1.toPrecision(); // returns "123.4567
// scientific notation is used when you pass precision count less than total
// number of digits left of the period
num1.toPrecision(2); // returns "1.2e+2"
// last digit is rounded if precision is less than total significant digits
num1.toPrecision(4); // returns "123.5"
num1.toPrecision(5); // returns "123.46"
const largeNum = 456.789;
largeNum.toPrecision(2); // returns "4.6e+2"
// trailing zeroes are added if precision is > total digits of the number or float
num1.toPrecision(9); // returns "123.456700"
const num2 = 123;
num2.toPrecision(4); // returns "123.0"
const num3 = 0.00123;
num3.toPrecision(4); // returns "0.001230"
num3.toPrecision(5); // returns "0.0012300"
// if the number is < 1, precision is by the significant digits
num3.toPrecision(1); // returns "0.001"
toFixed()
एक रिटर्न String
निश्चित बिंदु अंकन में संख्या वस्तु का प्रतिनिधित्व करने वाले को गिरफ्तार। यह फ़ंक्शन केवल दशमलव बिंदु संख्याओं की परवाह करता है
const num1 = 123.4567;
// if no argument is passed, the fractions are removed
num1.toFixed(); // returns "123"
// specifying an argument means you the amount of numbers after the decimal point
num1.toFixed(1); // returns "123.5"
num1.toFixed(3); // returns "123.457"
num1.toFixed(5); // returns "123.45670"
num1.toFixed(7); // returns "123.4567000"
// trying to operator on number literals
2.34.toFixed(1); // returns "2.3"
2.toFixed(1); // returns SyntaxError
(2).toFixed(1); // returns "2.0"
(2.34e+5).toFixed(1); // returns "234000.0"
मैंने एक अपवाद के ऊपर उल्लेख किया है जहां नकारात्मक संख्या के इन कार्यों का उपयोग करने से शाब्दिक संख्या वापस आ जाएगी और ऑपरेटर पूर्ववर्तीता के कारण स्ट्रिंग नहीं। यहाँ कुछ उदाहरण हैं:
// Note: these are returning as Number
// toPrecision()
-123.45.toPrecision(); // returns -123.45
-123.45.toPrecision(2); // returns -120
-123.45.toPrecision(4); // returns -123.5
-2.34e+2.toPrecision(1); // returns -200
-0.0456.toPrecision(1); // returns -0.05
-0.0456.toPrecision(6); // returns -0.0456
// toFixed()
-123.45.toFixed(); // returns -123.45
-123.45.toFixed(1); // returns -123.5
-123.45.toFixed(4); // returns -123.45
-0.0456.toFixed(1); // returns -0
-0.0456.toFixed(6); // -0.0456
मजेदार तथ्य: जैसा कि देखा गया है कि हस्ताक्षरित शून्य हैं -0.0456.toFixed(1)
देखें: क्या +0 और -0 समान हैं?