JS संख्याएँ
In this page:
let number = value;
number.toFixed(digits);
Number(string);
parseInt(string);
parseFloat(string);
Number Type
JavaScript में integers और decimals दोनों के लिए सिर्फ एक ही numeric type है: IEEE 754 standard द्वारा परिभाषित 64-bit floating-point format।
कई दूसरी languages की तरह इसमें कोई अलग int या float keyword नहीं है, इसलिए typeof हमेशा number ही बताता है, चाहे value 42 हो या 3.14159।
उदाहरण: The Number Type
console.log(typeof 42, typeof 3.14159); // both "number", one type for all
Number.isInteger से Numbers जांचना
Number.isInteger() जांचता है कि कोई value number भी है और उसमें कोई fractional part भी नहीं है, non-numbers के लिए यह false return करता है, पुराने global isFinite() और isNaN() functions की तरह उन्हें coerce किए बिना।
जब आपको खासतौर पर यह जानना हो कि कोई value whole number है या नहीं, तो यह ज़्यादा safe और predictable विकल्प है।
उदाहरण: Checking Numbers with Number.isInteger
console.log(Number.isInteger(5)); // true
console.log(Number.isInteger(5.5)); // false
console.log(Number.isInteger("5")); // false, no coercion
Strings को Numbers में Parse करना
parseInt() और parseFloat() स्ट्रिंग की शुरुआत से जितने भी valid numeric characters पढ़ सकते हैं पढ़ लेते हैं और बाकी को नज़रअंदाज़ कर देते हैं, इसलिए parseInt(42px) 42 return करता है।
दूसरी तरफ, Number() को पूरी स्ट्रिंग numeric चाहिए होती है वरना यह NaN return करता है, जो इसे ज़्यादा strict बनाता है लेकिन बाद के text के लिए कम माफ करने वाला।
उदाहरण: Parsing Strings into Numbers
console.log(parseInt("42px")); // 42
console.log(Number("42px")); // NaN, stricter
toFixed से Rounding और Formatting
toFixed(n) किसी number को decimal point के बाद n digits तक format करता है और result को एक स्ट्रिंग की तरह return करता है, number की तरह नहीं, जो लोगों को उलझा देता है अगर वे इसे वापस convert करना भूल जाएँ।
यह आमतौर पर prices या measurements दिखाने के लिए इस्तेमाल होता है जहाँ raw precision से ज़्यादा decimal places की एक consistent संख्या मायने रखती है।
उदाहरण: Rounding and Formatting with toFixed
const price = 19.5;
console.log(price.toFixed(2)); // "19.50" - a string, not a number
Precision की सीमाएँ और MAX_SAFE_INTEGER
Number.MAX_SAFE_INTEGER उस सबसे बड़े whole number को बताता है जिसे JavaScript बिना precision खोए represent कर सकता है; इससे आगे, 1 जोड़ने पर भी value असल में नहीं बदल सकती।
floating-point rounding की वजह से, decimal results की exact equality जांचना भरोसेमंद नहीं है, इसलिए कई programs Number.EPSILON जैसी एक छोटी tolerance value से तुलना करते हैं।
उदाहरण: Precision Limits and MAX_SAFE_INTEGER
console.log(Number.MAX_SAFE_INTEGER);
console.log(Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2); // true, precision lost
console.log(Math.abs(0.1 + 0.2 - 0.3) < Number.EPSILON);
- यह उम्मीद करना कि
0.1 + 0.20.3के बराबर होगा, जबकि floating point0.30000000000000004देता है; round करें या tolerance के साथ compare करें। - यह भूल जाना कि
toFixed()एक string return करता है, इसलिए(1.5).toFixed(2) + 1"1.501"देता है। Number.MAX_SAFE_INTEGERसे आगे integers इस्तेमाल करना, जहाँ results inaccurate हो जाते हैं; इसके बजायBigIntइस्तेमाल करें।
Chapter Quiz — Complete all 6 topics to unlock
0/6 topics done
Complete these topics first: