← Back to JavaScript Course | Chapter 3: Strings, Arrays & Data | Lesson 5 of 6

JS संख्याएँ

कुछ languages के उलट जो whole numbers और decimals को अलग-अलग boxes में रखती हैं, JavaScript हर number को, चाहे वह 5 हो या 5.5, चुपचाप एक ही तरह के container में रखता है: एक 64-bit floating-point value। यह एक unified Number type ज़्यादातर समय सुविधाजनक होता है, लेकिन इसका मतलब यह भी है कि precision की सीमाएँ और rounding की अजीबोगरीब बातें वहाँ सामने आती हैं जहाँ एक beginner को उम्मीद नहीं होती, और यही topic इसी बारे में समझाता है।
Syntax
javascript
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

javascript
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

javascript
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

javascript
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

javascript
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

javascript
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);
Live Example
Related Topics
{# common_mistakes/chapter_summary/browser_support: on Hindi pages the view already swaps in the hi_ translation fields (or blanks these out if untranslated), so this renders correctly for both languages without a lang_code check here. #}
आम गलतियां
  1. यह उम्मीद करना कि 0.1 + 0.2 0.3 के बराबर होगा, जबकि floating point 0.30000000000000004 देता है; round करें या tolerance के साथ compare करें।
  2. यह भूल जाना कि toFixed() एक string return करता है, इसलिए (1.5).toFixed(2) + 1 "1.501" देता है।
  3. Number.MAX_SAFE_INTEGER से आगे integers इस्तेमाल करना, जहाँ results inaccurate हो जाते हैं; इसके बजाय BigInt इस्तेमाल करें।
🔒

Chapter Quiz — Complete all 6 topics to unlock

0/6 topics done

Complete these topics first:

Login to run this code

C/C++/Java/PHP execution requires a free account. Your code is saved — you'll land right back in the editor after logging in.