در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±ÛÙ¾ØªØ Ø¯Ù ÙÙØ¹ عدد ÙØ¬Ùد دارد:
-
اعداد ٠ع٠ÙÙÛ Ø¯Ø± Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت با ÙØ±Ù ت 64 Ø¨ÛØªÛ IEEE-754 Ø°Ø®ÛØ±Ù Ù ÛâØ´ÙÙØ¯Ø ÙÙ ÚÙÛ٠با âØ§Ø¹Ø¯Ø§Ø¯ Ø§Ø¹Ø´Ø§Ø±Û Ø¨Ø§ Ø¯ÙØª ÛÚ© صد٠â ÙÙ Ø´ÙØ§Ø®ØªÙ Ù ÛâØ´ÙÙØ¯. ٠ا اکثر اÙÙØ§Øª از اÛ٠اعداد Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâÚ©ÙÛÙ Ø Ù Ø¯Ø±Ø¨Ø§Ø±Ù Ø¢ÙÙØ§ در اÛÙ ÙØµÙ ØµØØ¨Øª Ø®ÙØ§ÙÛ٠کرد.
-
اعداد BigIntØ Ø¨Ø±Ø§Û ÙÙ Ø§ÛØ´ Ø§Ø¹Ø¯Ø§Ø¯Û Ø¨Ø§ Ø·ÙÙ Ø¯ÙØ®ÙØ§Ù Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâØ´ÙÙØ¯. Ø¢ÙÙØ§ Ø¨Ø¹Ø¶Û Ø§ÙÙØ§Øª Ù ÙØ±Ø¯ ÙÛØ§Ø² ÙØ³ØªÙØ¯Ø ÚÙ٠اعداد ٠ع٠ÙÙÛ ÙÙ ÛâØªÙØ§ÙÙØ¯ از
253Ø¨ÛØ´ØªØ± ÛØ§ از-253ک٠تر Ø¨Ø§Ø´ÙØ¯. ÚÙÙ bigintÙØ§ در ÚÙØ¯ ØÙز٠خاص Ø§Ø³ØªÙØ§Ø¯Ù Ù ÛâØ´ÙÙØ¯Ø ٠ا ب٠آÙÙØ§ ÛÚ© ÙØµÙ خاص BigInt اختصاص Ù ÛâØ¯ÙÛÙ .
پس اÛÙØ¬Ø§ دربار٠اعداد ٠ع٠ÙÙÛ ØµØØ¨Øª Ù ÛâÚ©ÙÛÙ . Ø¨ÛØ§ÛÛØ¯ Ø¯Ø§ÙØ´â٠ا٠دربار٠آÙÙØ§ را گسترش دÙÛÙ .
راÙâÙØ§Û دÛگر ÙÙØ´ØªÙ ÛÚ© عدد
ÙØ±Ø¶ Ú©ÙÛØ¯ ÙÛØ§Ø² دارÛ٠بÙÙÛØ³ÛÙ ÛÚ© Ù ÛÙÛØ§Ø±Ø¯. Ø±Ø§Ù ÙØ§Ø¶Ø اÛ٠است:
let billion = 1000000000;
ÙÙ
ÚÙÛÙ Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
از خط ØªÛØ±Ù _ ب٠عÙÙØ§Ù جداکÙÙØ¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
:
let billion = 1_000_000_000;
اÛÙØ¬Ø§ خط ØªÛØ±Ù _ ÙÙØ´ âsyntactic sugarâ Ø±Ø§ Ø¨Ø§Ø²Û Ù
ÛâÚ©ÙØ¯Ø ٠عدد را Ø®ÙØ§Ùاتر Ù
ÛâÚ©ÙØ¯. Ù
ÙØªÙر Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت Ø¨Ù Ø±Ø§ØØªÛ _ بÛÙ Ø§Ø±ÙØ§Ù
را ÙØ§Ø¯Ûد٠Ù
ÛâÚ¯ÛØ±Ø¯Ø پس دÙÛÙØ§ Ø¹Ø¯Ø¯Û Ù
اÙÙØ¯ ÛÚ© Ù
ÛÙÛØ§Ø±Ø¯ Ø¨Ø§ÙØ§ است.
ا٠ا در Ø²ÙØ¯Ú¯Û ÙØ§ÙØ¹Û Ù Ø§ ع٠Ù٠ا از ÙÙØ´ØªÙ Ø±Ø´ØªÙ ØØ±Ù با تعداد Ø²ÛØ§Ø¯ ØµÙØ± Ø®ÙØ¯Ø¯Ø§Ø±Û Ù ÛÚ©ÙÛ٠ب٠خاطر اÛÙÚ©Ù Ø¨Ù Ø±Ø§ØØªÛ ٠٠ک٠است خطا داشت٠باشÛ٠٠اشتبا٠بÙÙÛØ³ÛÙ . ÙÙ ÛÙØ·ÙØ±Ø Ù Ø§ ØªÙØ¨Ù ÙØ³ØªÛÙ ! ٠ا ٠ع٠ÙÙØ§ ÛÙ ÚÛØ²Û شبÛÙ â1bnâ Ù ÛÙÙÛØ³ÛÙ Ø¨Ù Ø¬Ø§Û ÛÚ© Ù ÛÙÛØ§Ø±Ø¯ ÛØ§ â7.3bnâ Ø¨Ø±Ø§Û ÙÙØª Ù ÛÙÛØ§Ø±Ø¯ Ù Ø³ÛØµØ¯ Ù ÛÙÛÙÙ. اÛÙ ØÙÛÙØª Ø¨Ø±Ø§Û Ø§Ú©Ø«Ø± اعداد بزرگ Ù٠صØÛØ Ø§Ø³Øª.
در Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±ÛÙ¾ØªØ Ù
ا ÛÚ© عدد را براساس اضاÙÙ Ú©Ø±Ø¯Ù ØØ±Ù "e" Ø¨Ù Ø§ÙØªÙØ§Û Ø¢Ù Ø®ÙØ§ØµÙ Ù
ÛâÚ©ÙÛÙ
٠با آ٠تعداد ØµÙØ±Ùا Ù
شخص Ù
ÛâØ´ÙØ¯.
let billion = 1e9; // 1 billion, literally: 1 and 9 zeroes
alert( 7.3e9 ); // 7.3 billions (same as 7300000000 or 7_300_000_000)
ب٠زباÙÛ Ø¯ÛÚ¯Ø±Ø "e" عدد را در 1 با تعداد ØµÙØ± داد٠شد٠ضرب Ù
ÛâÚ©ÙØ¯.
1e3 === 1 * 1000; // e3 ÛØ¹ÙÛ *1000
1.23e6 === 1.23 * 1000000; // e6 ÛØ¹ÙÛ *1000000
ØØ§Ùا Ø¨Ú¯Ø°Ø§Ø±ÛØ¯ Ù ÙØ¯Ø§Ø±Û Ø®ÛÙÛ Ú©ÙÚÚ© بÙÙÛØ³ÛÙ . Ù Ø«ÙØ§Ø ÛÚ© Ù ÛÚ©Ø±ÙØ«Ø§ÙÛÙØ (ÛÚ© Ù ÛÙÛÙÙÛÙ٠ثاÙÛÙ):
let mÑs = 0.000001;
دÙÛÙØ§ Ù
Ø«Ù ÙØ¨ÙØ Ø§Ø³ØªÙØ§Ø¯Ù از "e" Ù
ÛâØªÙØ§Ùد Ú©Ù
Ú© Ú©ÙØ¯. اگر Ù
ا Ø¨Ø®ÙØ§ÙÛÙ
ک٠از ÙÙØ´ØªÙ ØµÙØ±Ùا Ø®ÙØ¯Ø¯Ø§Ø±Û Ú©ÙÛÙ
Ø Ù
ÛâØªÙØ§ÙÛÙ
بÙÙÛØ³ÛÙ
:
let mcs = 1e-6; // Ù¾ÙØ¬ ØµÙØ± در سÙ
ت ÚÙ¾ Û±
اگر Ù
ا تعداد ØµÙØ±ÙØ§Û 0.000001 را بشÙ
ارÛÙ
Ø Ø´Ø´ تا از Ø¢ÙÙØ§ Ù
ÙØ¬Ùدست. Ø¨ÙØ§Ø¨Ø±Ø§Û٠طبعا Ù
ÛâØ´ÙØ¯ 1e-6.
ب٠زباÙÛ Ø¯ÛÚ¯Ø±Ø ÛÚ© عدد Ù
ÙÙÛ Ø¨Ø¹Ø¯ "e"Ø Ø¨Ù Ù
عÙÛ ØªÙØ³ÛÙ
بر ÛÚ© با تعداد ØµÙØ±ÙØ§Û Ø¯Ø§Ø¯Ù Ø´Ø¯Ù Ø§Ø³Øª.
// -3 divides by 1 with 3 zeroes
1e-3 === 1 / 1000; // 0.001
// -6 divides by 1 with 6 zeroes
1.23e-6 === 1.23 / 1000000; // 0.00000123
// Ù
ثاÙÛ Ø¨Ø§ ÛÚ© عدد بزرگتر
1234e-2 === 1234 / 100; // Ù
Ù
ÛØ² د٠بار ØØ±Ú©Øª Ù
ÛâÚ©ÙØ¯Ø 12.34
اعداد پاÛÙ Û±Û¶Ø Ø¯ÙØ¯ÙÛÛØ پاÛÙ Û¸
اعداد پاÛÙ Û±Û¶ Ø¨Ø±Ø§Û ÙÙ
Ø§ÛØ´ رÙÚ¯âÙØ§Ø Ú©Ø¯Ú¯Ø°Ø§Ø±Û ØØ±ÙÙ Ù Ø¨Ø³ÛØ§Ø±Û دÛÚ¯Ø±Ø Ø¨Ù Ø·ÙØ± ÙØ³ÛØ¹Û Ø¯Ø± Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت Ù
ÙØ±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù ÙØ±Ø§Ø± Ù
ÛâÚ¯ÛØ±Ùد. Ø¨ÙØ§Ø¨Ø±Ø§ÛÙØ ÛÚ© Ø±Ø§Ù Ú©ÙØªØ§ÙØªØ±Û Ø¨Ø±Ø§Û ÙÙØ´Øª Ø¢ÙÙØ§ ÙØ¬Ùد دارد: 0x ٠سپس عدد.
ب٠عÙÙØ§Ù ٠ثاÙ:
alert( 0xff ); // 255
alert( 0xFF ); // 255 (the same, case doesn't matter)
اعداد ÙØ´ØªâتاÛÛ Ù Ø¯ÙØ¯ÙÛÛ Ø¨Ù ÙØ¯Ø±Øª Ù
ÙØ±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù ÙØ±Ø§Ø± Ù
ÛÚ¯ÛØ±Ùد اÙ
ا ÙØÙÙâÛ Ø§Ø³ØªÙØ§Ø¯ÙâÛ Ø¢ÙÙØ§ Ø¨Ù ØµÙØ±Øª Ù¾ÛØ´ÙÙØ¯âÙØ§Û 0b Ù 0o است:
let a = 0b11111111; // binary form of 255
let b = 0o377; // octal form of 255
alert( a == b ); // true, the same number 255 at both sides
س٠ÙÙØ¹ Ø³ÛØ³ØªÙ
Ø¹Ø¯Ø¯Û Ø¨Ø§ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
Ø®ØµÙØµ Ø¨Ù Ø®ÙØ¯ ÙØ¬Ùد دارد. Ø¨Ø±Ø§Û Ø¨ÙÛÙâÛ Ø³ÛØ³ØªÙ
âÙØ§ Ù
ا Ø¨Ø§ÛØ¯ از تابع parseInt Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
. (Ú©Ù Ù
ا در بخشâÙØ§Û Ø¨Ø¹Ø¯Û Ø®ÙØ§ÙÛÙ
Ø¯ÛØ¯.)
toString(base)
تابع num.toString(base)Ø ÛÚ© Ø±Ø´ØªÙ ØØ±Ù ÙÙ
Ø§ÛØ´Ú¯Ø± num را در Ø³ÛØ³ØªÙ
Ø¹Ø¯Ø¯Û Ø¨Ø§ پاÛÙ Ø¯Ø§Ø¯Ù Ø´Ø¯Ù Ø®Ø±ÙØ¬Û Ù
ÛâØ¯ÙØ¯.
ب٠عÙÙØ§Ù ٠ثاÙ:
let num = 255;
alert( num.toString(16) ); // ff
alert( num.toString(2) ); // 11111111
پاÛÙ Ù
ÛØªÙØ§ÙØ¯ از بÛÙ Û² تا Û³Û¶ تغÛÛØ± Ú©ÙØ¯. در ØØ§Ùت Ø¹Ø§Ø¯ÛØ Û±Û° است.
ØØ§Ùات ٠ع٠ÙÙ Ø§Ø³ØªÙØ§Ø¯Ù بدÛÙ Ø´Ú©ÙÙØ¯:
-
base=16 Ø¨Ø±Ø§Û Ø±ÙÚ¯âÙØ§Û ÙگزاÛÛØ Ú©Ø¯Ú¯Ø°Ø§Ø±Û ØØ±ÙÙ Ù ØºÛØ±ÙØ Ø§Ø±ÙØ§Ù Ù ÛØªÙاÙÙØ¯ Ø¨Ù ØµÙØ±Øª
0..9ÛØ§A..FØ¨Ø§Ø´ÙØ¯. -
base=2 Ø¨Ø±Ø§Û Ø¯ÛØ¨Ø§Ú¯ کرد٠ع٠ÙÙÙØ¯âÙØ§Û Ø¨ÛØªÛ ÙØ³ØªÙØ¯Ø Ø§Ø±ÙØ§Ù Ù ÛØªÙاÙÙØ¯
0ÛØ§1Ø¨Ø§Ø´ÙØ¯. -
base=36 بزرگترÛÙ Ø§Ø³ØªØ Ø§Ø±ÙØ§Ù Ù ÛØªÙاÙÙØ¯
0..9ÛØ§A..ZØ¨Ø§Ø´ÙØ¯. ک٠اÙÙØ¨Ø§Û ÙØ§ØªÛÙ Ø¨Ø±Ø§Û ÙÙ Ø§ÛØ´ ÛÚ© عدد Ù ÙØ±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù ÙØ±Ø§Ø± Ù ÛÚ¯ÛØ±Ø¯. ÛÚ© ØØ§Ùت Ø®ÙØ¯Ù Ø¯Ø§Ø±Ø Ø§Ù Ø§ Ù ÙÛØ¯ براÛÛ³Û¶ÙÙØªÛ است ک٠٠ا ÙÛØ§Ø² دارÛ٠تا ÛÚ© ÙØ´Ø§Ùگر بزرگ Ø¹Ø¯Ø¯Û Ø±Ø§ ب٠ÚÛØ² Ú©ÙÚÚ©ØªØ±Û ØªØ¨Ø¯ÛÙ Ú©ÙÛÙ Ø Ø¨Ù Ø¹ÙÙØ§Ù Ù Ø«Ø§Ù Ø¨Ø±Ø§Û . ساخت٠ÙÛÙÚ©â ÙØ§Û Ú©ÙØªØ§Ù شد٠(short url). Ù ÛØªÙØ§Ù Ø¨Ù Ø³Ø§Ø¯Ú¯Û Ø§Ø¹Ø¯Ø§Ø¯ را در پاÛÙâÛÛ³Û¶ÙÙ Ø§ÛØ´ داد:alert( 123456..toString(36) ); // 2n9c
ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ ک٠د٠ÙÙØ·Ù در 123456..toString(36)Ø ØºÙØ· اÙ
ÙØ§ÛÛ ÙÛØ³Øª. اگر Ù
ÛØ®ÙاÙÛÙ
ÛÚ© ØªØ§Ø¨Ø¹Û Ø±Ø§ Ù
ستÙÛÙ
ا رÙÛ Ø¹Ø¯Ø¯ صدا بزÙÛÙ
Ù
ث٠toString در Ù
Ø«Ø§Ù Ø¨Ø§ÙØ§Ø Ø¢Ùگا٠Ù
ا ÙÛØ§Ø² دارÛÙ
تا بعد از Ø¢Ù Ø¯ÙØªØ§ ÙÙØ·Ù بگذارÛÙ
.
اگر Ù
ا ÛÚ© ÙÙØ·Ù بگذارÛÙ
: 123456.toString(36)Ø Ø¢Ùگا٠خطاÛÛ Ø¨Ù ÙØ¬Ùد Ù
ÛâØ¢ÛØ¯Ø ÚØ±Ø§Ú©Ù ÙÙØ§Ø¹Ø¯ ÙÙØ´ØªØ§Ø±Û Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت بعد از ÛÚ© ÙÙØ·ÙØ Ø¢Ù Ø±Ø§ ÙØ³Ù
ت Ø§Ø¹Ø´Ø§Ø±Û Ø¢Ù Ø¯Ø± ÙØ¸Ø± Ù
ÛÚ¯ÛØ±Ø¯. ٠اگر ÛÚ© ÙÙØ·Ù Ø¨ÛØ´ØªØ± بگذارÛÙ
Ø Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÙØ±Ø¶ Ù
ÛÚ©ÙØ¯ ÙØ³Ù
ت Ø§Ø¹Ø´Ø§Ø±Û Ø®Ø§ÙÛâØ³Øª ٠سپس تابع ÙØ±Ø§Ø®ÙØ§ÙØ¯Ù Ù
ÛØ´Ùد.
ÙÙ
ÚÙÛÙ Ù
ÛØªÙاÙÛÙ
بÙÙÛØ³ÛÙ
(123456).toString(36):
Ø±ÙØ¯ کردÙ
ÛÚ©Û Ø§Ø² ع٠ÙÚ¯Ø±ÙØ§ÛÛ Ø¯Ø± اعداد Ø²ÛØ§Ø¯ Ù ÙØ±Ø¯ Ø§Ø³ØªÙØ§Ø¯Ù ÙØ±Ø§Ø± Ù ÛÚ¯ÛØ±Ø¯Ø Ø±ÙØ¯ کرد٠است.
ÚÙØ¯Û٠تابع از Ù¾ÛØ´ Ø¢Ù Ø§Ø¯Ù Ø´Ø¯Ù Ø¨Ø±Ø§Û Ø±ÙØ¯ Ú©Ø±Ø¯Ù Ø¨Ù Ø´Ø±Ø Ø²ÛØ± است:
Math.floor- Ø±ÙØ¯ پاÛÛÙ:
Û³.Û±Ù ÛØ´Ùد۳, Ù-Û±.Û±Ù ÛØ´Ùد-Û². Math.ceil- Ø±ÙØ¯ Ø¨Ø§ÙØ§:
Û³.Û±Ù ÛØ´Ùد۴, Ù-Û±.Û±Ù ÛØ´Ùد-Û±. Math.round- Ø±ÙØ¯ Ú©Ø±Ø¯Ù Ø¨Ù ÙØ²Ø¯ÛÚ© ترÛ٠عدد صØÛØ:
Û³.Û±Ù ÛØ´Ùد۳,Û³.Û¶Ù ÛØ´Ùد۴Ù-Û±.Û±Ù ÛØ´Ùد-Û±. Math.trunc(ØªÙØ³Ø· اÛÙØªØ±Ùت اکسپÙÙØ±Ø± Ø³Ø§Ù¾ÙØ±Øª ÙÙ ÛØ´Ùد)- ØØ°Ù Ú©Ø±Ø¯Ù ÙØ³Ù
ت Ø§Ø¹Ø´Ø§Ø±Û Ø¨Ø¯ÙÙ Ø±ÙØ¯ کردÙ:
Û³.Û±Ù ÛØ´Ùد۳,-Û±.Û±Ù ÛØ´Ùد-Û±.
اÛ٠جدÙÙ ØªÙØ§Ùت بÛÙ âØ¢ÙÙØ§Ø±Ø§ Ø®ÙØ§ØµÙ کرد٠است:
Math.floor |
Math.ceil |
Math.round |
Math.trunc |
|
|---|---|---|---|---|
Û³.Û± |
Û³ |
Û´ |
Û³ |
Û³ |
Û³.Û¶ |
Û³ |
Û´ |
Û´ |
Û³ |
-Û±.Û± |
-Û² |
-Û± |
-Û± |
-Û± |
-Û±.Û¶ |
-Û² |
-Û± |
-Û² |
-Û± |
اÛÙ ØªÙØ§Ø¨Ø¹ تÙ
اÙ
ØØ§Ùات کار با ÙØ³Ù
ت Ø§Ø¹Ø´Ø§Ø±Û ÛÚ© عدد را Ù¾ÙØ´Ø´ Ù
ÛØ¯ÙÙØ¯. اÙ
ا ÚØ·Ùر Ù
ÛØªÙاÙÛÙ
عدد را تا رÙÙ
n-اÙ
بعد از اعشار Ø±ÙØ¯ Ú©ÙÛÙ
Ø
Ø¨Ø±Ø§Û Ù
Ø«ÙØ§Ø دارÛÙ
Û±.Û²Û³Û´Ûµ Ù Ù
ÛØ®ÙاÙÛÙ
تا Û² رÙÙ
اعشار آ٠را Ø±ÙØ¯ Ú©ÙÛÙ
ÛØ¹ÙÛ Û±.Û²Û³
Ø¯Ù Ø±ÙØ´ Ø¨Ø±Ø§Û Ø§ÛÙکار دارÛÙ :
Û±. ضرب Ù ØªÙØ³ÛÙ
Ø¨Ø±Ø§Û Ù
Ø«Ø§ÙØ Ø¨Ø±Ø§Û Ú¯Ø±Ø¯ کرد٠عدد تا دÙÙ
Û٠رÙÙ
Ø§Ø¹Ø´Ø§Ø±ÛØ Ù
ÛâØªÙØ§ÙÛÙ
عدد را در`Û±Û°Û°` ضرب Ú©ÙÛÙ
Ø ØªØ§Ø¨Ø¹ Ø±ÙØ¯ کرد٠را صدا بزÙÛÙ
٠سپس Ø¯ÙØ¨Ø§Ø±Ù ØªÙØ³ÛÙ
Ú©ÙÛÙ
.
```js run
let num = 1.23456;
alert( Math.round(num * 100) / 100 ); // 1.23456 -> 123.456 -> 123 -> 1.23
```
Û². تابع toFixed(n) عدد را تا رÙÙ
n-اÙ
بعد اعشار Ø±ÙØ¯ Ù
ÛÚ©ÙØ¯ ٠سپس آ٠را Ø¨Ù ØµÙØ±Øª Ø±Ø´ØªÙ ØØ±ÙÛ ØØ±ÙÛ Ø®Ø±ÙØ¬Û Ù
ÛØ¯Ùد.
```js run
let num = 12.34;
alert( num.toFixed(1) ); // "12.3"
```
اÛ٠عدد را Ø¨Ù ÙØ²Ø¯ÛÚ© ترÛÙ Ù
ÙØ¯Ø§Ø± Ø±ÙØ¯ Ù
ÛÚ©ÙØ¯ Ù
شاب٠`Math.round`:
```js run
let num = 12.36;
alert( num.toFixed(1) ); // "12.4"
```
ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù Ù
ÙØ¯Ø§Ø± `toFixed` ÛÚ© رشت٠است. اگر ÙØ³Ù
ت بعد اعشار Ú©ÙÚÚ©âØªØ± از Ø¢ÙØ¬Ù ÙÛØ§Ø² است Ø¨Ø§Ø´Ø¯Ø ØµÙØ± ب٠آخر آ٠اضاÙÙ Ø®ÙØ§Ùد شد:
```js run
let num = 12.34;
alert( num.toFixed(5) ); // "12.34000", ØµÙØ± اضاÙ٠شد٠تا دÙÛÙØ§ Ûµ رÙÙ
Ø´ÙØ¯
```
Ù
ا Ù
ÛâØªÙØ§ÙÛÙ
آ٠را با Ú©Ù
Ú© عÙ
Ùگر جÙ
ع ÛگاÙÙ ÛØ§ با ÙØ±Ø§Ø®ÙاÙÛ `Number()` تبدÛÙ Ú©ÙÛÙ
Ø Ø¨Ø±Ø§Û Ù
ثا٠بÙÙÛØ³ÛÙ
`+num.toFixed(5)`.
Ù ØØ§Ø³Ø¨Ø§Øª ØªÙØ±ÛبÛ
در درÙÙ Ø³ÛØ³ØªÙ Ø ÛÚ© عدد ب٠شک٠۶۴-Ø¨ÛØªÛ است IEEE-754Ø Ø¨ÙØ§Ø¨Ø±Ø§Û٠دÙÛÙØ§ Û¶Û´ Ø¨ÛØª Ø¨Ø±Ø§Û Ø°Ø®ÛØ±ÙâÛ ÛÚ© عدد دارÛÙ : ÛµÛ² تا از Ø¢ÙÙØ§ Ø¨Ø±Ø§Û Ø°Ø®ÛØ±Ù Ú©Ø±Ø¯Ù Ø§Ø±ÙØ§Ù ÙØ³ØªÙØ¯Ø Û±Û± تا از Ø¢ÙÙØ§ Ø¨Ø±Ø§Û Ø°Ø®ÛØ±Ù کرد٠جاÛگا٠ÙÙØ·ÙâÛ Ù Ø´Ø®Øµ Ú©ÙÙØ¯ÙâÛ Ø§Ø¹Ø´Ø§Ø± (Ú©Ù Ø¨Ø±Ø§Û Ø§Ø¹Ø¯Ø§Ø¯ صØÛØ ØµÙØ± است)Ø Ù ÛÚ© Ø¨ÛØª Ø¨Ø±Ø§Û Ø¹ÙØ§Ù ت Ø¢Ù.
اگر Ø¹Ø¯Ø¯Û Ø¨ÛØ´ از ØØ¯ بزرگ Ø¨Ø§Ø´Ø¯Ø ØØ§ÙظÙâÛ Û¶Û´ Ø¨ÛØªÛ Ø³Ø±Ø±ÛØ² Ù ÛâØ´ÙØ¯ Ù Ø¨Ù Ù ÙØ¯Ø§Ø± بÛâÙÙØ§Ûت تبدÛÙ Ù ÛâØ´ÙØ¯:
alert( 1e500 ); // Infinity
Ø§ØªÙØ§ÙÛ Ú©Ù Ø²ÛØ§Ø¯ ٠شخص ÙÛØ³Øª ٠ک٠تر Ø§ØªÙØ§Ù Ù ÛâØ§ÙØªØ¯Ø از دست Ø¯Ø§Ø¯Ù Ø¯ÙØª است.
اÛ٠آز٠ÙÙ (اشتباÙ!)Ø¨Ø±Ø§Ø¨Ø±Û Ø±Ø§ در ÙØ¸Ø± Ø¨Ú¯ÛØ±Ûد:
alert( 0.1 + 0.2 == 0.3 ); // false
اÛ٠درست Ø§Ø³ØªØ Ø§Ú¯Ø± Ù
ا Ø¨Ø±Ø±Ø³Û Ú©ÙÛÙ
ک٠جÙ
ع 0.1 Ù 0.2Ø 0.3 Ø§Ø³ØªØ Ù
ا Ù
ÙØ¯Ø§Ø± false را در Ø¬ÙØ§Ø¨ Ù
ÛÚ¯ÛØ±ÛÙ
.
Ø¹Ø¬ÛØ¨ است! ÚÛ ÙØ³Øª پس اگر 0.3 ÙÛØ³ØªØ!
alert( 0.1 + 0.2 ); // 0.30000000000000004
اÙÙ! ÙØ±Ø¶ Ú©ÙÛØ¯ Ø´Ù
ا در ØØ§Ù ساخت ÙØ±ÙشگاÙÛ Ø§ÛÙØªØ±ÙØªÛ ÙØ³ØªÛد Ù Ø¨Ø§Ø²Ø¯ÛØ¯Ú©ÙÙØ¯Ù Ú©Ø§ÙØ§ÙاÛÛ Ø¨Ù Ù
Ø¨ÙØº $0.10 Ù $0.20 را ب٠سبد Ø®Ø±ÛØ¯ Ø®ÙØ¯ اضاÙÙ Ù
ÛâÚ©ÙØ¯. Ù
جÙ
ÙØ¹ ÙØ²ÛÙÙ Ø³ÙØ§Ø±Ø´ $0.30000000000000004 Ø®ÙØ§Ùد Ø¨ÙØ¯. اÛÙ ÙØ± Ø´Ø®ØµÛ Ø±Ø§ Ø´Ú©Ù Ù
ÛâÚ©ÙØ¯!
ا٠ا ÚØ±Ø§ اÛÙ Ø§ØªÙØ§Ù Ù ÛâØ§ÙØªØ¯Ø
ÛÚ© عدد در ØØ§ÙØ¸Ù Ø¨Ù Ø´Ú©Ù Ø¯ÙØ¯ÙÛÛ Ø¢Ù Ø°Ø®ÛØ±Ù Ù
ÛØ´ÙØ¯Ø Ù
جÙ
ÙØ¹ÙâØ§Û Ø§Ø² ØµÙØ±Ùا Ù ÛÚ©âÙØ§. اÙ
ا Ú©Ø³Ø±ÙØ§ÛÛ Ù
ث٠0.1Ø 0.2 ک٠در Ø³ÛØ³ØªÙ
اعداد Ø§Ø¹Ø´Ø§Ø±Û Ø³Ø§Ø¯Ù Ø¨Ù ÙØ¸Ø± Ù
ÛØ±Ø³Ùد در Ø§ØµÙ Ú©Ø³Ø±ÙØ§Û بÛâÙ¾Ø§ÛØ§ÙÛ Ø¯Ø± Ø´Ú©Ù Ø¯ÙØ¯ÙÛÛ Ø®ÙØ¯ ÙØ³ØªÙد.
Ù
ÙØ¯Ø§Ø± 0.1 ÚÛØ³ØªØ Ù
ÙØ¯Ø§Ø± ÛÚ© ک٠بر Ø¯Ù ØªÙØ³ÛÙ
Ø´Ø¯ÙØ 1/10 ÛØ¹ÙÛ ÛÚ© دÙÙ
. در Ø³ÛØ³ØªÙ
اعداد Ø§Ø¹Ø´Ø§Ø±Û ÚÙÛÙ Ø§Ø¹Ø¯Ø§Ø¯Û Ø¨Ù Ø³Ø§Ø¯Ú¯Û ÙØ§Ø¨Ù ÙÙ
Ø§ÛØ´ ÙØ³ØªÙد. آ٠را با ÛÚ© سÙÙ
1/3 Ù
ÙØ§Ûس٠کÙÛØ¯. Ø¨Ù Ú©Ø³Ø±Û Ø¨ÛâÙ¾Ø§ÛØ§Ù تبدÛÙ Ù
ÛâØ´ÙØ¯ 0.33333(3).
Ø¨ÙØ§Ø¨Ø±Ø§ÛÙØ ØªÙØ³ÛÙ ÙØ§Û از ØªÙØ§Ù Ø¯ÙØ ÙØ·Ø¹Ø§ در Ø³ÛØ³ØªÙ Ø§Ø¹Ø´Ø§Ø±Û Ú©Ø§Ø± Ù ÛÚ©ÙØ¯ ا٠ا ØªÙØ³ÛÙ âÙØ§Û بر Û³ اÛÙØ·Ùر ÙÛØ³Øª. Ø¨Ù Ø¹ÙØª Ù Ø´Ø§Ø¨ÙØ در Ø³ÛØ³ØªÙ اعداد Ø¯ÙØ¯ÙÛÛØ ØªÙØ³ÛÙ ØªÙØ§ÙâÙØ§Û Û² ÙÙ ÙØ·Ø¹Ø§ کار Ù ÛÚ©ÙØ¯ ا٠ا Û±/Û±Û°Ø Ú©Ø³Ø± Ø¯ÙØ¯ÙÛÛ Ø¨ÛâÙ¾Ø§ÛØ§ÙÛ Ù ÛØ´Ùد.
در ØÙÛÙØª ÙÛÚ Ø±Ø§ÙÛ Ø¨Ø±Ø§Û Ø°Ø®ÛØ±Ù کرد٠دÙÛÙØ§ Û°.Û± ÛØ§ دÙÛÙØ§ Û°.Û² در Ø³ÛØ³ØªÙ Ø¯ÙØ¯ÙÛÛ ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯Ø دÙÛÙØ§ ٠ث٠اÛÙÚ©Ù Ø¨Ø±Ø§Û Ø°Ø®ÛØ±Ù Ø³Ø§Ø²Û Ù ÙØ¯Ø§Ø± ÛÚ© سÙ٠ب٠عÙÙØ§Ù ÛÚ© کسر Ø§Ø¹Ø´Ø§Ø±Û Ø±Ø§ÙÛ ÙØ¬Ùد ÙØ¯Ø§Ø±Ø¯.
ÙØ±Ù
ت Ø¹Ø¯Ø¯Û IEEE-754Ø Ø§ÛÙ Ù
سأÙ٠را با Ú©Ù
Ú© Ø±ÙØ¯ Ú©Ø±Ø¯Ù Ø¨Ù ÙØ²Ø¯ÛÚ©âØªØ±Û٠عدد Ù
Ù
Ú©Ù ØÙ Ù
ÛâÚ©ÙØ¯. اÛÙ ÙÙØ§ÙÛÙ Ø±ÙØ¯ کرد٠عÙ
ÙÙ
ا ÙÙ
ÛÚ¯Ø°Ø§Ø±ÙØ¯ Ú©Ù Ù
ا Ø¢Ù Ù
ÙØ¯Ø§Ø± Ú©ÙÚÚ© Ø¯ÙØª Ú¯Ù
شد٠را Ù
ØªÙØ¬Ù بشÙÛÙ
Ø Ø¨ÙØ§Ø¨Ø±Ø§Û٠عدد ب٠شک٠0.3 Ø®ÙØ§Ùد Ø¨ÙØ¯. اÙ
ا Ø¢Ú¯Ø§Ù Ø¨Ø§Ø´ÛØ¯ ک٠اÛ٠از دست Ø¯Ø§Ø¯Ù Ø¯ÙØª ÙÙÙØ² ÙØ¬Ùد دارد.
Ù ÛØªÙاÙÛ٠اÛ٠را در ع٠٠Ù٠ببÛÙÛÙ :
alert( 0.1.toFixed(20) ); // 0.10000000000000000555
Ù ÙÙÚ¯Ø§Ù Û Ú©Ù Ù Ø§ د٠عدد را ج٠ع Ù ÛÚ©ÙÛÙ Ø Ù ÙØ¯Ø§Ø± از دست Ø¯Ø§Ø¯Ú¯Û Ø¯ÙØª Ø¢ÙÙØ§ با Ù٠ج٠ع Ù ÛØ´Ùد.
ب٠ÙÙ
ÛÙ Ø¹ÙØª است Ú©Ù 0.1 + 0.2Ø Ø¯ÙÛÙØ§ 0.3 ÙÙ
ÛØ´Ùد.
اÛ٠٠شک٠در دÛگر زباÙâÙØ§Û Ø¨Ø±ÙØ§Ù ÙâÙÙÛØ³Û Ø¨Ø³ÛØ§Ø±Û ÙØ¬Ùد دارد.
PHPØ JavaØ CØ PerlØ Ruby دÙÛÙØ§ ÙØªÛجÙâÛ Ù Ø´Ø§Ø¨Ù Ø±Ø§ Ù ÛØ¯ÙÙØ¯ ÚØ±Ø§Ú©Ù بر پاÛÙâÛ ÙØ±Ù ت Ø¹Ø¯Ø¯Û ÛکساÙÛ Ø¨ÙØ§ شدÙââØ§ÙØ¯.
Ø¢ÛØ§ ٠ا Ù ÛØªÙاÙÛ٠راÙÛ Ø¨Ø±Ø§Û ØÙ اÛ٠٠سأÙÙ Ù¾ÛØ¯Ø§ Ú©ÙÛÙ Ø Ø·Ø¨Ø¹Ø§Ø ÙØ§Ø¨Ù اط٠ÛÙØ§Ù ترÛ٠را٠ØÙ اÛ٠است Ú©Ù ÙØªÛج٠را با Ú©Ù Ú© ٠تد toFixed(n) Ø±ÙØ¯ Ú©ÙÛÙ :
let sum = 0.1 + 0.2;
alert( sum.toFixed(2) ); // "0.30"
ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù toFixed ÙÙ
ÛØ´Ù Ù
ÙØ¯Ø§Ø± Ø±Ø´ØªÙ ØØ±ÙÛ Ø¨Ø±Ù
ÛÚ¯Ø±Ø¯Ø§ÙØ¯. اÛ٠تابع ØØªÙ
ا Ù
Ø·Ù
ئ٠Ù
ÛØ´Ùد ک٠تا د٠رÙÙ
اعشار را ØØ³Ø§Ø¨ Ù
ÛâÚ©ÙØ¯. Ú©Ù Ø§ÙØ¨ØªÙ اÛÙ Ø±ÙØ´ Ù
ÙØ·ÙÛââØ³Øª ÙÙØªÛ Ù
Ø«ÙØ§ در ÛÚ© ÙØ±Ùشگا٠اÛÙØªØ±ÙØªÛ Ù
ا ÙÛØ§Ø² دارÛÙ
Ù
ÙØ¯Ø§Ø± $0.30 را ÙÙ
Ø§ÛØ´ دÙÛÙ
. Ø¨Ø±Ø§Û ØØ§Ùات دÛÚ¯Ø±Ø Ù
ÛØªÙاÙÛÙ
از جÙ
ع ÙØ§ØØ¯ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ
تا Ø¢ÙØ±Ø§ ب٠ÛÚ© عدد تبدÛÙ Ú©ÙÛÙ
:
let sum = 0.1 + 0.2;
alert( +sum.toFixed(2) ); // 0.3
ÙÙ ÚÙÛ٠٠ا Ù ÛâØªÙØ§ÙÛÙ Ø¨Ù Ø·ÙØ± Ù ÙÙØª اعداد را در 100 ضرب Ú©ÙÛÙ (ÛØ§ ÛÚ© عدد بزرگتر) تا Ø¢ÙÙØ§ را ب٠عدد صØÛØ ØªØ¨Ø¯ÛÙ Ú©ÙÛÙ Ø Ø¹Ù ÙÛØ§Øª Ø±ÛØ§Ø¶Û را Ø§ÙØ¬Ø§Ù دÙÛÙ Ø Ø³Ù¾Ø³ Ø¢ÙÙØ§ را Ø¯ÙØ¨Ø§Ø±Ù ØªÙØ³ÛÙ Ú©ÙÛÙ . Ø³Ù¾Ø³Ø ÙÙ Ø§ÙØ·Ùر ک٠ع٠ÙÛØ§Øª Ø±ÛØ§Ø¶Û را با اعداد صØÛØ Ø§ÙØ¬Ø§Ù Ù ÛâØ¯ÙÛÙ Ø Ø§Ø±ÙØ± Ù ÙØ¯Ø§Ø±Û Ú©Ù Ù ÛâØ´ÙØ¯Ø ا٠ا ÙÙÙØ² Ø²Ù Ø§Ù ØªÙØ³Û٠آ٠را Ø¯Ø±ÛØ§Ùت Ù ÛâÚ©ÙÛÙ :
alert( (0.1 * 10 + 0.2 * 10) / 10 ); // 0.3
alert( (0.28 * 100 + 0.14 * 100) / 100); // 0.4200000000000001
پس Ø±ÙØ´ ضرب/ØªÙØ³ÛÙ Ø§Ø±ÙØ± را Ú©Ø§ÙØ´ Ù ÛâØ¯ÙØ¯Ø ا٠ا آ٠را Ø¨Ù Ø·ÙØ± کا٠٠ازبÛÙ ÙÙ ÛâØ¨Ø±Ø¯.
گاÙÛ Ø§ÙÙØ§Øª Ù ÛâØªÙØ§ÙÛÙ Ø¨Ù Ø·ÙØ± Ú©ÙÛ Ø§Ø² Ú©Ø³Ø±ÙØ§ ÙØ±Ø§Ø± Ú©ÙÛÙ . Ø¨Ø±Ø§Û Ù Ø«Ø§Ù Ø§Ú¯Ø± ٠ا با ÛÚ© ÙØ±Ùشگا٠سر ٠کار دارÛÙ Ø Ù ÛâØªÙØ§ÙÛÙ ÙÛ٠تâÙØ§ را Ø¨Ù Ø¬Ø§Û Ø¯ÙØ§Ø± Ø¨Ù ØµÙØ±Øª Ø³ÙØª (cent) Ø°Ø®ÛØ±Ù Ú©ÙÛÙ . ا٠ا اگر ÛÚ© تخÙÛÙ 30 Ø¯Ø±ØµØ¯Û Ø±Ø§ اع٠ا٠کÙÛÙ ÚÙØ در Ø¹Ù ÙØ ÙØ±Ø§Ø± کرد٠از Ú©Ø³Ø±ÙØ§ Ø¨Ù ÙØ¯Ø±Øª ٠٠ک٠است. ز٠اÙÛ Ú©Ù ÙÛØ§Ø² شد ÙÙØ· Ø¢ÙÙØ§ را Ø±ÙØ¯ Ú©ÙÛØ¯ تا âØ¯Ù âØ´Ø§Ùâ Ø±Ø§ Ø¨Ø¨Ø±ÛØ¯.
اجرا Ú©ÙÛØ¯:
// Hello! I'm a self-increasing number!
alert( 9999999999999999 ); // shows 10000000000000000
اÛÙ ÙÙ Ø§Ù Ù Ø´Ú©Ù ÙØ¨ÙÛâØ³Øª: از دست Ø¯Ø§Ø¯Ù Ø¯ÙØª. Ø¨Ø±Ø§Û Ø¹Ø¯Ø¯ Û¶Û´ Ø¨ÛØª ÙØ¬Ùد Ø¯Ø§Ø±Ø¯Ø ÛµÛ² تا از Ø¢ÙÙØ§ Ø¨Ø±Ø§Û Ø°Ø®ÛØ±Ùâ Ø§Ø±Ùا٠است ا٠ا اÛ٠کاÙÛ ÙÛØ³Øª. پس ک٠اÙÙ ÛØªâترÛÙ Ø§Ø±ÙØ§Ù ÙØ§Ù¾Ø¯Ûد Ù ÛØ´ÙÙØ¯.
Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت در ÚÙÛÙ Ø¬Ø§ÙØ§ÛÛ Ø®Ø·Ø§ÛÛ ÙÙ ÛÙØ±Ø³ØªØ¯ گرÚÙ ÙÙØ§Ûت Ø³Ø¹ÛØ´ را Ù ÛÚ©ÙØ¯ تا عدد را در ÙØ±Ù ت Ù Ø±Ø¨ÙØ·Ù ÙØ±Ø§Ø± Ø¯ÙØ¯ ا٠ا اÛÙ ÙØ±Ù ت Ø¨Ù Ø§ÙØ¯Ø§Ø²Ù کاÙÛ Ø¨Ø²Ø±Ú¯ ÙÛØ³Øª.
ÛÚ© Ø§ØªÙØ§Ù Ø¬Ø§ÙØ¨ دÛگر ک٠در ÙÙ
Ø§ÛØ´ داد٠اعداد درÙÙ Ø³ÛØ³ØªÙ
Ù
ÛâØ§ÙØªØ¯ ÙØ¬Ùد د٠ÙÙØ¹ ØµÙØ± Ù
ÛØ¨Ø§Ø´Ø¯! 0 Ù -0.
اÛ٠ب٠اÛÙ Ø¹ÙØª است Ú©Ù Ø¹ÙØ§Ù ت با ÛÚ© Ø¨ÛØª ٠شخص Ù ÛØ´Ùد Ø¨ÙØ§Ø¨Ø±Ø§ÛÙ ÙØ± عدد Ù ÛØªÙØ§ÙØ¯ ٠ثبت ÛØ§ Ù ÙÙÛ Ø¨Ø§Ø´Ø¯Ø ØØªÛ ØµÙØ±.
در اکثر ØØ§ÙØ§ØªØ ØªÙØ§Ùت ØºÛØ±ÙØ§Ø¨Ù ØªÙØ¬Ù Ø§Ø³ØªØ ÚØ±Ø§Ú©Ù ع٠ÙÚ¯Ø±ÙØ§ Ø¨Ø±Ø§Û Ø¯Ø§Ø´ØªÙ Ø±ÙØªØ§Ø± Ûکسا٠ÙÙ٠داد٠شدÙâÙØ¯.
آز٠ÙÙâÙØ§: isFinite Ù isNaN
Ø¢ÛØ§ اÛÙ Ø¯Ù Ù ÙØ¯Ø§Ø± Ø¹Ø¯Ø¯Û Ø®Ø§Øµ را Ø¨Ù ÛØ§Ø¯ Ø¯Ø§Ø±ÛØ¯Ø
Infinity(Ù-Infinity) ÛÚ© Ù ÙØ¯Ø§Ø± Ø¹Ø¯Ø¯Û Ø®Ø§Øµ ÙØ³ØªÙد بزرگتر (Ú©ÙÚکتر) از ÙØ±ÚÛØ²Û.NaNÛÚ© خطا را ÙØ´Ø§Ù Ù ÛâØ¯ÙØ¯.
Ø¢ÙÙØ§ ب٠Ù
د٠number Ù
Ø±Ø¨ÙØ·Ùد اÙ
ا اعداد Ù
عÙ
ÙÙÛ ÙÛØ³ØªÙØ¯Ø Ù¾Ø³ ØªÙØ§Ø¨Ø¹ Ø®Ø§ØµÛ Ø¨Ø±Ø§Û Ø¨Ø±Ø±Ø³Û Ø¢ÙÙØ§ ÙØ¬Ùد دارد.
-
isNaN(value)آرگÙ٠اÙâÙØ§ÛØ´ را ب٠ÛÚ© عدد تبدÛÙ Ù ÛÚ©ÙØ¯ ٠سپس آ٠را براÛNaNØ¨ÙØ¯Ù Ù ÛâØ¢Ø²Ù Ø§ÛØ¯:alert( isNaN(NaN) ); // true alert( isNaN("str") ); // trueا٠ا Ø¢ÛØ§ ٠ا ب٠اÛ٠تابع ÙÛØ§Ø² دارÛÙ Ø ÙÙ ÛØªÙاÙÛÙ ØµØ±ÙØ§ از تساÙÛ
=== NaNØ§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛÙ Øâ Ù ØªØ§Ø³ÙØ§ÙÙ Ø¬ÙØ§Ø¨ Ø®ÛØ± است. Ù ÙØ¯Ø§Ø±NaNØ Ù ÙØ¯Ø§Ø±Û Ûکتاست ٠با ÙÛÚ ÚÛØ²Ø ØØªÛ Ø®ÙØ¯Ø´ برابر ÙÛØ³Øª.alert( NaN === NaN ); // false -
isFinite(value)آرگÙ٠اÙâÙØ§ÛØ´ را ب٠عدد تبدÛÙ Ù ÛÚ©ÙØ¯ ٠در ØµÙØ±ØªÛ Ú©Ù Ø¹Ø¯Ø¯Û Ù Ø¹Ù ÙÙÛ Ø¨Ø§Ø´Ø¯trueØ®Ø±ÙØ¬Û Ù ÛâØ¯ÙØ¯ ÙÙNaN/Infinity/-Infinity:alert( isFinite("15") ); // true alert( isFinite("str") ); // false, because a special value: NaN alert( isFinite(Infinity) ); // false, because a special value: Infinity
Ø¨Ø¹Ø¶Û Ø§ÙÙØ§Øª isFinite Ø¨Ø±Ø§Û ØµØØª Ø³ÙØ¬Û اÛÙÚ©Ù ÛÚ© Ø±Ø´ØªÙ ØØ±ÙÛØ Ø¹Ø¯Ø¯Û Ù
عÙ
ÙÙÛØ³Øª ب٠کار برد٠Ù
ÛâØ´ÙØ¯.
let num = +prompt("Enter a number", '');
// صØÛØ Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù
ÛØ´Ùد Ù
گر اÛÙÚ©Ù ÙØ§Ø±Ø¯ Ú©ÙÛØ¯ Infinity, -Infinity ÛØ§ ÚÛØ²Û ØºÛØ± از عدد
alert( isFinite(num) );
ØªÙØ¬Ù Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù Ø±Ø´ØªÙ ØØ±ÙÛâØ§Û Ú©Ù Ø¯Ø± Ø¢Ù ÙÙØ· ÛÚ© Ø¬Ø§Û Ø®Ø§ÙÛ Ø¨Ø§Ø´Ø¯ ÛØ§ Ú©ÙØ§ خاÙÛ Ø¨Ø§Ø´Ø¯Ø Ø¨Ù Ø¹ÙÙØ§Ù ØµÙØ± در ÙÙ
ÙâÛ ØªÙØ§Ø¨Ø¹ Ø¹Ø¯Ø¯Û Ø§Ø² جÙ
ÙÙ isFinite در ÙØ¸Ø± Ú¯Ø±ÙØªÙ Ù
ÛØ´Ùد.
Number.isNaN Ù Number.isFiniteÙ
ØªØ¯ÙØ§Û Number.isNaN Ù Number.isFinite ÙØ³Ø®ÙâÙØ§Û «سختâÚ¯ÛØ±ØªØ±Â» از تابعâÙØ§Û isNaN Ù isFinite ÙØ³ØªÙد. Ø¢ÙâÙØ§ Ø¨Ù Ø·ÙØ± Ø®ÙØ¯Ú©Ø§Ø± آرگÙÙ
Ø§Ù Ø®ÙØ¯ را ب٠عدد تبدÛÙ ÙÙ
ÛâÚ©ÙÙØ¯ بÙک٠در Ø¹ÙØ¶ Ø¨Ø±Ø±Ø³Û Ù
ÛâÚ©ÙÙØ¯ Ú©Ù Ø¢ÛØ§ آرگÙÙ
ا٠ب٠ÙÙØ¹ number تعÙ٠دارد ÛØ§ Ø®ÛØ±.
-
Number.isNaN(value)اگر آرگÙ٠ا٠ب٠ÙÙØ¹numberتعÙ٠داشت٠باشد ٠برابر باNaNباشد Ù ÙØ¯Ø§Ø±trueرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯. در ØºÛØ± اÛÙ ØµÙØ±ØªfalseØ¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù ÛâØ´ÙØ¯.alert( Number.isNaN(NaN) ); // true alert( Number.isNaN("str" / 2) ); // true // :Ø¨Ù ØªÙØ§Ùت ØªÙØ¬Ù Ú©ÙÛØ¯ alert( Number.isNaN("str") ); // false ب٠ÙÙØ¹ رشت٠تعÙ٠دارد Ù٠عدد پس "str" ÚÙÙ alert( isNaN("str") ); // true را Ø¯Ø±ÛØ§Ùت Ù ÛâÚ©ÙØ¯ پس NaN را ب٠ÛÚ© عدد تبدÛÙ Ù ÛâÚ©ÙØ¯ ٠از اÛ٠تبدÛÙ "str" رشت٠isNaN ÚÙÙ -
Number.isFinite(value)اگر آرگÙ٠ا٠ب٠ÙÙØ¹numberتعÙ٠داشت٠باشد ÙNaN/Infinity/-InfinityÙØ¨Ø§Ø´Ø¯ Ù ÙØ¯Ø§Ø±trueØ¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù ÛâØ´ÙØ¯. در ØºÛØ± اÛÙ ØµÙØ±Øªfalseرا بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.alert( Number.isFinite(123) ); // true alert( Number.isFinite(Infinity) ); // false alert( Number.isFinite(2 / 0) ); // false // :Ø¨Ù ØªÙØ§Ùت ØªÙØ¬Ù Ú©ÙÛØ¯ alert( Number.isFinite("123") ); // false ÚÙÙ "123" ب٠ÙÙØ¹ رشت٠تعÙ٠دارد ÙÙ ÙÙØ¹ عدد پس alert( isFinite("123") ); // true رشت٠"123" را ب٠عدد 123 تبدÛÙ Ù ÛâÚ©ÙØ¯ پس isFinite ÚÙÙ
Ø¨Ù ÙØÙÛØ Number.isNaN Ù Number.isFinite سادÙâØªØ± Ù Ø³Ø±Ø±Ø§Ø³ØªâØªØ± از تابعâÙØ§Û isNaN Ù isFinite ÙØ³ØªÙد. اگرÚ٠در عÙ
ÙØ isNaN Ù isFinite Ø¨ÛØ´ØªØ± Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙÙØ¯ ÚÙÙ Ø¨Ø±Ø§Û ÙÙØ´ØªÙ Ú©ÙØªØ§ÙâØªØ± ÙØ³ØªÙد.
Object.isÛÚ© Ù
تد درÙÙâØ³Ø§Ø®Øª خاص Ø¨Ù ÙØ§Ù
Object.is ÙØ¬Ùد دارد Ú©Ù Ù
ÙØ§Ø¯Ûر را Ù
ث٠=== Ù
ÙØ§Ûس٠Ù
ÛÚ©ÙØ¯Ø اÙ
ا Ø¨Ø±Ø§Û Ø¯Ù ØØ§Ùت Ù
Ø±Ø²Û ÙØ§Ø¨Ù اعتÙ
ادتر است:
Û±. با NaN کار Ù
ÛÚ©ÙØ¯: Object.is(NaN, NaN) === trueØ Ú©Ù ÚÛØ² Ø®ÙØ¨Ûست.
Û². Ù
ÙØ§Ø¯Ûر 0 Ù -0 Ù
ØªÙØ§Ùت ÙØ³ØªÙد: Object.is(0, -0) === falseØ Ø¨Ù ÙØ¯Ø±Øª اÙÙ
ÛØª Ø¯Ø§Ø±Ø¯Ø Ø§Ù
ا اÛÙ Ù
ÙØ§Ø¯Ûر در اص٠Ù
ØªÙØ§ÙØªÙØ¯.
در تÙ
اÙ
ØØ§Ùات دÛÚ¯Ø±Ø Object.is(a, b) با a === b برابراست.
Ù
ا Object.is را اÛÙØ¬Ø§ ذکر Ù
ÛâÚ©ÙÛÙ
ÚÙÙ Ø§ØºÙØ¨ در Ù
شخصات Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙØ¯. زÙ
اÙÛ Ú©Ù ÛÚ© اÙÚ¯ÙØ±ÛتÙ
درÙÙÛ ÙÛØ§Ø² دارد ک٠د٠Ù
ÙØ¯Ø§Ø± را Ø¨Ø±Ø§Û Ø§ÛÙک٠دÙÛÙØ§ ÛÚ©Ø³Ø§Ù Ø¨Ø§Ø´ÙØ¯ Ù
ÙØ§ÛØ³Ù Ú©ÙØ¯Ø از Object.is Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙØ¯ (از درÙÙ SameValue ÙØ±Ø§Ø®ÙاÙÛ Ù
ÛâØ´ÙØ¯).
parseInt Ù parseFloat
تبدÛÙØ§Øª Ø¹Ø¯Ø¯Û Ú©Ù Ø§Ø² ÛÚ© جÙ
ع + ÛØ§ Number() Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛÚ©ÙÙØ¯Ø سختâÚ¯ÛØ± ÙØ³ØªÙد.
alert( +"100px" ); // NaN
تÙÙØ§ Ø§Ø³ØªØ«ÙØ§Ø کاراکتر خاÙÛ Ø¯Ø± Ø´Ø±ÙØ¹ ÛØ§ Ø§ÙØªÙØ§Û Ø±Ø´ØªÙ ØØ±ÙÛ ÙØ³ØªÙد ک٠آÙÙØ§ در تابع در ÙØ¸Ø± Ú¯Ø±ÙØªÙ ÙÙ ÛâØ´ÙÙØ¯.
اÙ
ا در دÙÛØ§Û ÙØ§ÙØ¹ÛØ Ù
ا Ù
ÙØ§Ø¯Ûر در ÙØ§ØØ¯ÙØ§Û Ù
ختÙÙÛ Ø¯Ø§Ø±ÛÙ
Ø Ù
ث٠"100px" ÛØ§ "12pt" در CSS. ÙÙ
ÛÙØ·Ùر در Ø¨Ø³ÛØ§Ø±Û از Ú©Ø´ÙØ±ÙØ§Ø ÙÙ
اد Ù¾ÙÙÛ Ø¢ÙÙØ§ بعد از Ù
ÙØ¯Ø§Ø± Ø¹Ø¯Ø¯Û Ø¸Ø§ÙØ± Ù
ÛØ´Ùد. Ù
ث٠"19â¬"Ø Ú©Ù Ù
ÛØ®ÙاÙÛÙ
Ø¢Ù Ù
ÙØ¯Ø§Ø± را از ÙØ³Ù
ت ØØ±ÙÛ Ø¬Ø¯Ø§ Ú©ÙÛÙ
.
ب٠ÙÙ
ÛÙ Ø¹ÙØª است Ú©Ù parseInt Ù parseFloat Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´ÙÙØ¯.
Ø¢ÙÙØ§ ÛÚ© عدد را از رشتÙâÛ ØØ±Ù Ù
ÛØ®ÙاÙÙØ¯ تا زÙ
اÙÛ Ú©Ù Ø¯Ûگر ÙØªÙاÙÙØ¯. در ØµÙØ±Øª Ø¨Ø±ÙØ² Ø®Ø·Ø§Ø Ø¹Ø¯Ø¯ Ù¾ÛØ¯Ø§ Ø´Ø¯Ù Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù Ù
ÛâØ´ÙØ¯. تابع parseInt ÛÚ© عدد صØÛØ Ø¨Ø±Ù
ÛÚ¯Ø±Ø¯Ø§ÙØ¯Ø در ØØ§ÙÛÚ©Ù parseFloat ÛÚ© عدد Ø§Ø¹Ø´Ø§Ø±Û Ø¨Ø±Ù
ÛÚ¯Ø±Ø¯Ø§ÙØ¯.
alert( parseInt('100px') ); // 100
alert( parseFloat('12.5em') ); // 12.5
alert( parseInt('12.3') ); // 12, تÙÙØ§ ÙØ³Ù
ت صØÛØ Ø¹Ø¯Ø¯ Ø¨Ø±Ú¯Ø±Ø¯Ø§ÙØ¯Ù شدÙ
alert( parseFloat('12.3.4') ); // 12.3, ÙÙØ·ÙâÛ Ø¯ÙÙ
ÛØ ÙØ±Ø¢ÛÙØ¯ Ø®ÙØ§Ùد٠شد٠را Ù
تÙÙÙ Ù
ÛâÚ©ÙØ¯.
ØØ§ÙØ§ØªÛ ÙØ¬Ùد دارد Ú©Ù parseInt/parseFloat Ù
Ù
ک٠است Ù
ÙØ¯Ø§Ø± NaN را برگرداÙÙØ¯. اÛÙ Ø¨Ø±Ø§Û ØØ§ÙتÛâØ³Øª Ú©Ù ÙÛÚ Ø±ÙÙ
Û ÙØªÙØ§ÙØ¯ Ø®ÙØ§ÙØ¯Ù Ø´ÙØ¯:
alert( parseInt('a123') ); // NaN, اÙÙÛÙ ØØ±Ù اÛ٠رشتÙâÛ ØØ±ÙÛØ ÙØ±Ø¢ÛÙØ¯ را Ù
تÙÙÙ Ù
ÛâÚ©ÙØ¯.
parseInt(str, radix)تابع parseInt()Ø ÛÚ© پاراÙ
تر Ø§Ø®ØªÛØ§Ø±Û دÙÙ
Û ÙÙ
دارد Ú©Ù Ù
ÙØ¯Ø§Ø± پاÛÙâÛ Ø³ÛØ³ØªÙ
Ø¹Ø¯Ø¯Û Ø±Ø§ Ù
شخص Ù
ÛÚ©ÙØ¯Ø ب٠طبع Ù
ÛØªÙاÙÛÙ
رشتÙâ ØØ±ÙÛ Ø§Ø¹Ø¯Ø§Ø¯ پاÛÙ Û±Û¶Ø Ù¾Ø§ÛÙ Û² ٠ب٠ÙÙ
ÛÙ ØªØ±ØªÛØ¨ را ب٠دست Ø¢ÙØ±ÛÙ
:
alert( parseInt('0xff', 16) ); // 255
alert( parseInt('ff', 16) ); // 255, بدÙÙ 0x ÙÙ
کار Ù
ÛâÚ©ÙØ¯
alert( parseInt('2n9c', 36) ); // 123456
ØªÙØ§Ø¨Ø¹ Ø±ÛØ§Ø¶Û دÛگر
Ø¬Ø§ÙØ§Ø§Ø³Ú©Ø±Ûپت ÛÚ© شئ از Ù¾ÛØ´ آ٠ادÙâ Ø´Ø¯Ù Math دارد ک٠شا٠٠کتابخاÙÙâØ§Û Ú©ÙÚÚ© از ØªÙØ§Ø¨Ø¹ Ø±ÛØ§Ø¶Û Ù Ø«ÙØ§Ø¨Øª است.
ØªØ¹Ø¯Ø§Ø¯Û Ù Ø«Ø§Ù:
Math.random()-
ÛÚ© عدد تصادÙÛ Ø§Ø² بÛÙ Û° تا Û± بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ (ک٠شا٠٠۱ ÙÙ ÛØ´Ùد(.
alert( Math.random() ); // 0.1234567894322 alert( Math.random() ); // 0.5435252343232 alert( Math.random() ); // ... (ÙØ± عدد تصادÙÛâØ§Û) Math.max(a, b, c...)/Math.min(a, b, c...)-
بزرگترÛÙ/Ú©ÙÚÚ©âØªØ±Û٠عدد را از بÛ٠تعداد Ø¯ÙØ®Ùا٠آرگÙ٠اÙâÙØ§ برâÙ ÛâÚ¯Ø±Ø¯Ø§ÙØ¯
alert( Math.max(3, 5, -10, 0, 1) ); // 5 alert( Math.min(1, 2) ); // 1 Math.pow(n, power)-
عدد
nرا Ø¨Ù ØªÙØ§Ù داد٠شد٠٠ÛâØ±Ø³Ø§ÙØ¯.alert( Math.pow(2, 10) ); // Ø¯Ù Ø¨Ù ØªÙØ§Ù د٠= 1024
ØªÙØ§Ø¨Ø¹ Ù Ø«ÙØ§Ø¨Øª Ø¨ÛØ´ØªØ±Û در شئ Math ÙØ¬Ùد Ø¯Ø§Ø±Ø¯Ø Ù
Ø«Ù Ø±ÙØ§Ø¨Ø· Ù
Ø«ÙØ«Ø§Øª Ú©Ù Ù
ÛØªÙاÙÛØ¯ در Ù
Ø³ØªÙØ¯Ø§Øª Ø¨Ø±Ø§Û Ø´Ø¦ Math Ù¾ÛØ¯Ø§ Ú©ÙÛØ¯.
Ø®ÙØ§ØµÙ
Ø¨Ø±Ø§Û ÙÙØ´ØªÙ Ø§Ø¹Ø¯Ø§Ø¯Û Ú©Ù ØµÙØ± Ø²ÛØ§Ø¯ Ø¯Ø§Ø±ÙØ¯:
- ØØ±Ù
"e"را با تعداد ØµÙØ±Ùا Ø¨Ù Ø§ÙØªÙØ§Û Ø¹Ø¯Ø¯ اضاÙÙ Ú©ÙÛØ¯. Ù Ø«Ù:123e6Ú©Ù123است با Û¶ ØµÙØ±123000000. - ÛÚ© عدد Ù
ÙÙÛ Ø¨Ø¹Ø¯
"e"باعث ØªÙØ³Û٠شد٠عدد بر ÛÚ© با تعداد ØµÙØ± ٠شخص Ø´Ø¯Ù Ù ÛØ´Ùد. ٠اÙÙØ¯123e-6ب٠٠عÙÛ `0.000123 (123 Ù ÛÙÛÙÙÛÙÙ ).
Ø¨Ø±Ø§Û Ø³ÛØ³ØªÙ âÙØ§Û Ø¹Ø¯Ø¯Û Ù ØªÙØ§Ùت:
- Ù
ÛØªÙا٠اعداد را Ù
ستÙÛÙ
ا در ÙØ±Ù
پاÛÙÛ±Û¶ (
0x) ÙÙØ´ØªØ پاÛÙÛ¸ (0o) Ù Ø¯ÙØ¯ÙÛÛ (0b) ÙÙØ´Øª. parseInt(str, base)ÛÚ© عدد صØÛØ Ø±Ø§ از ÙØ± Ø³ÛØ³ØªÙ Ø¹Ø¯Ø¯Û Ø¨Ø§ پاÛÙâÛ2 ⤠base ⤠36را استخراج Ù ÛâÚ©ÙØ¯.num.toString(base)ÛÚ© عدد را ب٠ÛÚ© رشتÙâÛ ØØ±ÙÛ Ø¯Ø± Ø³ÛØ³ØªÙ Ø¹Ø¯Ø¯Û Ø¨Ø§ پاÛ٠داد٠شد٠تبدÛÙ Ù ÛâÚ©ÙØ¯.
Ø¨Ø±Ø§Û Ø¢Ø²Ù Ø§ÛØ´ Ø¹Ø§Ø¯Û Ø¹Ø¯Ø¯ÙØ§:
isNaN(value)آرگÙÙ Ø§Ù Ø®ÙØ¯ را ب٠ÛÚ© عدد تبدÛÙ Ù ÛâÚ©ÙØ¯ Ù Ø¨Ø±Ø±Ø³Û Ù ÛâÚ©ÙØ¯ Ú©ÙNaNاست ÛØ§ Ø®ÛØ±.Number.isNaN(value)Ø¨Ø±Ø±Ø³Û Ù ÛâÚ©ÙØ¯ ک٠آرگÙ٠ا٠آ٠ب٠ÙÙØ¹numberتعÙ٠دارد ÛØ§ Ø®ÛØ± ٠اگر Ø¯Ø§Ø´ØªØ Ø¨Ø±Ø±Ø³Û Ù ÛâÚ©ÙØ¯ Ú©ÙNaNÙØ³Øª ÛØ§ Ø®ÛØ±isFinite(value)آرگÙÙ Ø§Ù Ø®ÙØ¯ را ب٠عدد تبدÛÙ Ù ÛâÚ©ÙØ¯ ٠اگر ÛÚ© عدد ٠ع٠ÙÙÛ Ø¨Ø§Ø´Ø¯trueبر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯ Ù٠اÛÙÚ©ÙNaN/Infinity/-Infinityباشد.Number.isFinite(vlaue)Ø¨Ø±Ø±Ø³Û Ù ÛâÚ©ÙØ¯ Ú©Ù Ø¢ÛØ§ آرگÙ٠ا٠آ٠ب٠ÙÙØ¹numberتعÙ٠دارد ÛØ§ Ø®ÛØ± ٠اگر Ø¯Ø§Ø´ØªØ Ø¨Ø±Ø±Ø³Û Ù ÛâÚ©ÙØ¯ Ú©ÙNaN/Infinity/-InfinityÙØ¨Ø§Ø´Ø¯
Ø¨Ø±Ø§Û ØªØ¨Ø¯ÛÙ Ù
ÙØ§Ø¯ÛØ±Û Ù
ث٠12pt Ù 100px ب٠ÛÚ© عدد:
parseInt/parseFloatرا Ø¨Ø±Ø§Û ØªØ¨Ø¯ÛÙØ§Øª Ø³Ø§Ø¯Ù Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯ Ú©Ù ÛÚ© عدد را از ÛÚ© رشتÙâÛ ØØ±ÙÛ Ù ÛâØ®ÙØ§Ùد ٠سپس Ù ÙØ¯Ø§Ø±Û Ú©Ù ÙØ¨Ù از Ø¨Ø±ÙØ² خطا Ø®ÙØ§ÙدÙâØ³Øª را بر٠ÛâÚ¯Ø±Ø¯Ø§ÙØ¯.
Ø¨Ø±Ø§Û Ú©Ø³Ø±ÙØ§:
- با Ú©Ù
Ú©
Math.floorØMath.ceilØMath.truncØMath.roundÛØ§num.toFixed(precision)Ø±ÙØ¯ Ú©ÙÛØ¯. - Ø¨Ù ÛØ§Ø¯ Ø¯Ø§Ø´ØªÙ Ø¨Ø§Ø´ÛØ¯ Ú©Ù ÛÚ© Ø¯ÙØª از دست Ø±ÙØªÙâØ§Û Ø¯Ø± ØÛ٠کار با کسر ÙØ§ ÙØ¬Ùد دارد.
ØªÙØ§Ø¨Ø¹ Ø±ÛØ§Ø¶Û Ø¨ÛØ´ØªØ±:
- Math شئ را ÙÙØªÛ ب٠آÙÙØ§ ÙÛØ§Ø² Ø¯Ø§Ø±ÛØ¯ ببÛÙÛØ¯. کتابخاÙÙâÛ Ø¨Ø³ÛØ§Ø± Ú©ÙÚÚ©ÛØ³Øª ا٠ا ØªÙØ§Ø¨Ø¹ پاÛÙâØ§Û Ø±Ø§ Ù¾ÙØ´Ø´ Ù ÛâØ¯ÙØ¯.
ÙØ¸Ø±Ø§Øª
<code>Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯Ø Ø¨Ø±Ø§Û ÚÙØ¯Û٠خط â کد را درÙ٠تگ<pre>ÙØ±Ø§Ø± دÙÛØ¯Ø Ø¨Ø±Ø§Û Ø¨ÛØ´ از د٠خط کد â Ø§Ø² ÛÚ© جعبÙÙ Ø´ÙÛ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ¯. (plnkrØ jsbinØ codepenâ¦)