JavaScript – اعداد (Numbers)
در جاوا اسکریپت فقط یک نوع داده برای نمایش اعداد وجود دارد. اعداد میتوانند به صورت اعشاری یا صحیح نوشته شوند:
let x = 3.14; // عدد اعشاری
let y = 3; // عدد صحیح
همچنین، اعداد بسیار بزرگ یا بسیار کوچک را میتوان با نشانهگذاری علمی (نمایی) نوشت:
let x = 123e5; // 12300000
let y = 123e-5; // 0.00123
اعداد در جاوا اسکریپت همیشه 64-بیتی هستند
جاوا اسکریپت از استاندارد بینالمللی IEEE 754 برای ذخیره اعداد به صورت اعداد اعشاری با دقت مضاعف استفاده میکند.
این استاندارد اعداد را در 64 بیت ذخیره میکند:
- 52 بیت برای مقدار (Mantissa)
- 11 بیت برای توان (Exponent)
- 1 بیت برای علامت (Sign)
دقت اعداد صحیح
اعداد صحیح (بدون نقطه اعشار یا نمایش نمایی) تا 15 رقم دقیق هستند:
let x = 999999999999999; // مقدار دقیق
let y = 9999999999999999; // مقدار غیر دقیق (گرد میشود به 10000000000000000)
حداکثر تعداد رقمهای اعشاری 17 رقم است.
مشکلات دقت اعداد اعشاری
محاسبات اعشاری همیشه دقیق نیستند:
let x = 0.2 + 0.1; // نتیجه دقیق نیست
برای حل این مشکل میتوانید از ضرب و تقسیم استفاده کنید:
let x = (0.2 * 10 + 0.1 * 10) / 10; // نتیجه دقیق است
جمع اعداد و رشتهها
عملگر +
در جاوا اسکریپت هم برای جمع اعداد و هم برای اتصال رشتهها استفاده میشود.
جمع اعداد:
let x = 10;
let y = 20;
let z = x + y; // نتیجه: 30
اتصال رشتهها:
let x = "10";
let y = "20";
let z = x + y; // نتیجه: "1020"
ترکیب عدد و رشته:
let x = 10;
let y = "20";
let z = x + y; // نتیجه: "1020"
جاوا اسکریپت عملیات را از چپ به راست اجرا میکند. بنابراین، ترتیب ترکیب عدد و رشته مهم است.
رشتههای عددی
جاوا اسکریپت میتواند رشتههایی با محتوای عددی را در محاسبات به اعداد تبدیل کند:
let x = "100";
let y = "10";
let z1 = x / y; // نتیجه: 10
let z2 = x * y; // نتیجه: 1000
let z3 = x - y; // نتیجه: 90
let z4 = x + y; // نتیجه: "10010" (اتصال رشته)
NaN (Not a Number)
NaN
نشاندهنده یک عدد نامعتبر است.
وقتی یک رشته غیر عددی در عملیات ریاضی استفاده شود، مقدار NaN
برگردانده میشود:
let x = 100 / "Apple"; // نتیجه: NaN
میتوانید با استفاده از تابع isNaN()
بررسی کنید که آیا یک مقدار عدد معتبر است یا خیر:
let x = 100 / "Apple";
isNaN(x); // نتیجه: true
هرگونه عملیات ریاضی با NaN
نیز نتیجه NaN
خواهد داشت:
let x = NaN;
let y = 5;
let z = x + y; // نتیجه: NaN
Infinity و -Infinity
اگر عددی فراتر از بیشترین مقدار ممکن در جاوا اسکریپت باشد، مقدار Infinity
یا -Infinity
برگردانده میشود:
let x = 2 / 0; // نتیجه: Infinity
let y = -2 / 0; // نتیجه: -Infinity
اعداد هگزادسیمال و پایههای مختلف
اعداد با پیشوند 0x
به عنوان هگزادسیمال (پایه 16) شناخته میشوند:
let x = 0xFF; // نتیجه: 255
میتوانید اعداد را با استفاده از متد toString()
به پایههای مختلف تبدیل کنید:
let myNumber = 32;
myNumber.toString(2); // باینری (پایه 2)
myNumber.toString(8); // اکتال (پایه 8)
myNumber.toString(16); // هگزادسیمال (پایه 16)
اشیاء عددی (Number Objects)
به جای تعریف اعداد به صورت معمولی، میتوانید با استفاده از new
یک شیء عددی ایجاد کنید:
let x = 123;
let y = new Number(123);
اما استفاده از شیء عددی توصیه نمیشود، زیرا کد را پیچیدهتر کرده و عملکرد را کند میکند. همچنین مقایسه شیءها نتایج غیرمنتظره میدهد:
let x = new Number(500);
let y = new Number(500);
x == y; // نتیجه: false
x === y; // نتیجه: false
جمعبندی
- اعداد در جاوا اسکریپت همیشه 64 بیتی هستند.
- میتوان از قالبهای مختلف مانند هگزادسیمال و نشانهگذاری علمی استفاده کرد.
- مشکلات دقت در محاسبات اعشاری و استفاده همزمان از عدد و رشته باید با دقت مدیریت شود.
- از ساختن اشیاء عددی پرهیز کنید.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام