জাভাস্ক্রিপ্টের নম্বরগুলি হ'ল আইইই-754 ডাবল-স্পষ্টতা বাইনারি ফ্লোটিং পয়েন্ট, মোটামুটি কমপ্যাক্ট ফর্ম্যাট (b৪ বিট) যা দ্রুত গণনা এবং বিস্তৃত পরিসরের জন্য সরবরাহ করে। এটি একটি চিহ্ন বিট, একটি 11-বিট এক্সপোনেন্ট এবং 52-বিট ইম্প্যান্ট হিসাবে সংখ্যা সংরক্ষণ করে এটি করে (যদিও চতুরতার মাধ্যমে এটি প্রকৃতপক্ষে 53 বিট পায়)। এটি বাইনারি (বেস 2) ভাসমান পয়েন্ট: তাত্পর্যপূর্ণ (আরও কিছু চালাক) আমাদের মান দেয় এবং এক্সপোনেন্টটি আমাদের সংখ্যার বিশালতা দেয়।
স্বাভাবিকভাবেই, কেবলমাত্র এতগুলি গুরুত্বপূর্ণ বিট সহ, প্রতিটি সংখ্যা সংরক্ষণ করা যায় না। এখানে নম্বর 1 এবং পরের সর্বোচ্চ সংখ্যাটি 1 যে 2 + 5-2 1.00000000000000022, 1 + 2 -52 ≈ 1.00000000000000022 সংরক্ষণ করতে পারে তার পরের সর্বোচ্চ নম্বরটি: 1 + 2 × 2 -52 ≈ 1.00000000000000044
+ + ------------------------------------------------- -------------- সাইন বিট
/ + ------- + ---------------------------------------- -------------- প্রকাশক
/ / | + + ------------------------------------------------- + - গুরত্বপূর্ণ
/ / | / |
0 01111111111 0000000000000000000000000000000000000000000000
= 1
0 01111111111 0000000000000000000000000000000000000000000001
≈ 1.0000000000000002222
0 01111111111 0000000000000000000000000000000000000000001010
≈ 1.0000000000000000044
1.00000000000000000022 থেকে 1.00000000000000044 এ লাফটি নোট করুন; 1.00000000000000033 সঞ্চয় করার কোনও উপায় নেই। এটি পূর্ণসংখ্যার সাথেও ঘটতে পারে: Number.MAX_SAFE_INTEGER(9,007,199,254,740,991) সর্বাধিক ধনাত্মক পূর্ণসংখ্যার মান যা ফর্ম্যাটটি ধরে রাখতে পারে iএবং i + 1উভয়ই হুবহু উপস্থাপনযোগ্য ( স্পেস )। 9,007,199,254,740,991 এবং 9,007,199,254,740,992 উভয়ই উপস্থাপন করা যেতে পারে তবে পরবর্তী পূর্ণসংখ্যা 9,007,199,254,740,993, পারবেন না; পরবর্তী পূর্ণসংখ্যা 9,007,199,254,740,992 এর পরে আমরা 9,007,199,254,740,994 এর প্রতিনিধিত্ব করতে পারি। এখানে বিট নিদর্শনগুলি রয়েছে, ডানদিকে (কমপক্ষে গুরুত্বপূর্ণ) বিটটি নোট করুন:
+ + ------------------------------------------------- -------------- সাইন বিট
/ + ------- + ---------------------------------------- -------------- প্রকাশক
/ / | + + ------------------------------------------------- + - গুরত্বপূর্ণ
/ / | / |
0 10000110011 1111111111111111111111111111111111111111111111111111111111
= 9007199254740991 (সংখ্যা।
0 10000110100 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
= 9007199254740992 (সংখ্যা।
x এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স
9007199254740993 (সংখ্যা। MAXائشE_INTEGER + 2) সংরক্ষণ করা যায় না
0 10000110100 00000000000000000000000000000000000000000010001
= 9007199254740994 (সংখ্যা।
মনে রাখবেন, ফর্ম্যাটটি বেস 2, এবং সেই ঘনিষ্ঠর সাথে কমপক্ষে উল্লেখযোগ্য বিট আর ভগ্নাংশ নয়; এটির মান 2 রয়েছে এটি বন্ধ (9,007,199,254,740,992) বা (9,007,199,254,740,994) এ বন্ধ হতে পারে; সুতরাং এই মুহুর্তে, আমরা পুরো সংখ্যা (পূর্ণসংখ্যার) স্কেল পর্যন্ত নির্ভুলতা হারাতে শুরু করেছি। যা আমাদের লুপের জন্য নিহিত রয়েছে!