Zamonaviy JavaScript-da ikki turdagi raqamlar mavjud:
-
JavaScript-da oddiy raqamlar 64-bitli IEEE-754 formatida saqlanadi, bu âikki aniqlikdagi suzuvchi nuqta raqamlariâ deb ham ataladi. Bular biz koâpincha ishlatadigan raqamlar va bu bobda ular haqida gaplashamiz.
-
BigInt raqamlari ixtiyoriy uzunlikdagi butun sonlarni ifodalaydi. Ular baâzan kerak boâladi, chunki oddiy butun son raqami xavfsiz ravishda
(253-1)dan oshib ketishi yoki-(253-1)dan kichik boâlishi mumkin emas, buni Ma'lumotlar turlari bobida eslatgan edik. Bigintâlar bir nechta maxsus sohalarda ishlatilganligi sababli, ularga maxsus BigInt bobini bagâishlaymiz.
Demak, bu yerda oddiy raqamlar haqida gaplashamiz. Ular haqidagi bilimlarimizni kengaytiraylik.
Raqam yozishning koâproq usullari
Tasavvur qiling, bizga 1 milliard yozish kerak. Aniq usul:
let billion = 1000000000;
Shuningdek, biz ajratuvchi sifatida pastki chiziq _ dan foydalanishimiz mumkin:
let billion = 1_000_000_000;
Bu yerda pastki chiziq _ âsintaktik shakarâ rolini oâynaydi, u raqamni oâqishga osonroq qiladi. JavaScript dvigateli raqamlar orasidagi _ ni shunchaki eâtiborsiz qoldiradi, shuning uchun bu yuqoridagi bilan aynan bir xil bir milliarddir.
Haqiqiy hayotda biz nollarning uzun ketma-ketliklarini yozishdan qochamiz. Bunga dangasamiz. Bir milliard uchun "1bn" yoki 7 milliard 300 million uchun "7.3bn" kabi narsalar yozishga harakat qilamiz. Koâpchilik katta raqamlar uchun ham xuddi shunday.
JavaScript-da biz raqamni qisqartirish uchun unga "e" harfini qoâshib, nollar sonini koârsata olamiz:
let billion = 1e9; // 1 milliard, to'g'ridan-to'g'ri: 1 va 9 ta nol
alert(7.3e9); // 7.3 milliard (7300000000 yoki 7_300_000_000 bilan bir xil)
Boshqacha qilib aytganda, e raqamni berilgan nollar soni bilan 1 ga koâpaytiradi.
1e3 === 1 * 1000; // e3 *1000 ni anglatadi
1.23e6 === 1.23 * 1000000; // e6 *1000000 ni anglatadi
Endi juda kichik narsani yozaylik. Aytaylik, 1 mikrosekund (sekundning milliondan bir qismi):
let mÑs = 0.000001;
Xuddi avvalgidek, "e" dan foydalanish yordam berishi mumkin. Nollarni aniq yozishdan qochish uchun xuddi shunday yoza olamiz:
let mcs = 1e-6; // 1 dan chapga beshta nol
Agar biz 0.000001 dagi nollarni sansak, ulardan 6 ta bor. Demak, tabiiy ravishda bu 1e-6.
Boshqacha qilib aytganda, "e" dan keyingi salbiy raqam berilgan nollar soni bilan 1 ga boâlishni anglatadi:
// -3 berilgan 3 ta nol bilan 1 ga bo'ladi
1e-3 === 1 / 1000; // 0.001
// -6 berilgan 6 ta nol bilan 1 ga bo'ladi
1.23e-6 === 1.23 / 1000000; // 0.00000123
// kattaroq raqam bilan misol
1234e-2 === 1234 / 100; // 12.34, kasr nuqtasi 2 marta siljiydi
Hex, binary va octal raqamlar
Hexadecimal raqamlar JavaScript-da ranglarni ifodalash, belgilarni kodlash va boshqa koâp narsalar uchun keng ishlatiladi. Shuning uchun tabiiy ravishda ularni yozishning qisqaroq usuli mavjud: 0x va keyin raqam.
Masalan:
alert(0xff); // 255
alert(0xff); // 255 (bir xil, registr muhim emas)
Binary va octal raqam tizimlari kamdan-kam qoâllaniladi, lekin 0b va 0o prefikslari yordamida ham qoâllab-quvvatlanadi:
let a = 0b11111111; // 255 ning binary shakli
let b = 0o377; // 255 ning octal shakli
alert(a == b); // true, ikkala tomonda bir xil 255 raqami
Bunday qoâllab-quvvatlash bilan faqat 3 ta raqam tizimi mavjud. Boshqa raqam tizimlari uchun biz parseInt funksiyasidan foydalanishimiz kerak (buni bu bobning keyingi qismida koâramiz).
toString(base)
num.toString(base) usuli berilgan base bilan raqam tizimida num ning satr koârinishini qaytaradi.
Masalan:
let num = 255;
alert(num.toString(16)); // ff
alert(num.toString(2)); // 11111111
base 2 dan 36 gacha oâzgarishi mumkin. Standart boâyicha bu 10.
Buning umumiy foydalanish holatlari:
-
base=16 hex ranglar, belgi kodlashlari va hokazo uchun ishlatiladi, raqamlar
0..9yokiA..Fboâlishi mumkin. -
base=2 asosan bitli operatsiyalarni disk raskadka qilish uchun, raqamlar
0yoki1boâlishi mumkin. -
base=36 maksimal, raqamlar
0..9yokiA..Zboâlishi mumkin. Butun Lotin alifbosi raqamni ifodalash uchun ishlatiladi.36uchun qiziqarli, lekin foydali holat â uzun raqamli identifikatorni qisqaroq narsaga aylantirish kerak boâlganda, masalan, qisqa url yaratish uchun. Uni shunchaki36asosli raqam tizimida ifodalash mumkin:alert((123456).toString(36)); // 2n9c
Eâtibor bering, 123456..toString(36) dagi ikkita nuqta xato emas. Agar biz yuqoridagi misoldagi toString kabi raqamda toâgâridan-toâgâri usulni chaqirmoqchi boâlsak, undan keyin ikkita nuqta .. qoâyishimiz kerak.
Agar bitta nuqta qoâysak: 123456.toString(36), u holda xato boâladi, chunki JavaScript sintaksisi birinchi nuqtadan keyin kasr qismini nazarda tutadi. Va agar yana bir nuqta qoâysak, JavaScript kasr qismi boâsh ekanligini biladi va endi usulni ishlatadi.
Shuningdek, (123456).toString(36) deb yoza olamiz.
Yaxlitlash
Raqamlar bilan ishlashda eng koâp ishlatiladigan operatsiyalardan biri yaxlitlashdir.
Yaxlitlash uchun bir nechta oârnatilgan funksiyalar mavjud:
Math.floor- Pastga yaxlitlaydi:
3.13ga aylanadi,-1.1-2ga aylanadi. Math.ceil- Yuqoriga yaxlitlaydi:
3.14ga aylanadi,-1.1-1ga aylanadi. Math.round- Eng yaqin butun songa yaxlitlaydi:
3.13ga aylanadi,3.64ga aylanadi. Oârta holatlarda3.54gacha yaxlitlanadi,-3.5-3gacha yaxlitlanadi. Math.trunc(Internet Explorer tomonidan qoâllab-quvvatlanmaydi)- Yaxlitlashsiz kasr nuqtasidan keyin hamma narsani olib tashlaydi:
3.13ga aylanadi,-1.1-1ga aylanadi.
Ular orasidagi farqlarni umumlashtiradigan jadval:
Math.floor |
Math.ceil |
Math.round |
Math.trunc |
|
|---|---|---|---|---|
3.1 |
3 |
4 |
3 |
3 |
3.5 |
3 |
4 |
4 |
3 |
3.6 |
3 |
4 |
4 |
3 |
-1.1 |
-2 |
-1 |
-1 |
-1 |
-1.5 |
-2 |
-1 |
-1 |
-1 |
-1.6 |
-2 |
-1 |
-2 |
-1 |
Bu funksiyalar raqamning kasr qismi bilan ishlashning barcha mumkin boâlgan usullarini qamrab oladi. Lekin agar raqamni kasr nuqtasidan keyin n-chi raqamga yaxlitlashni istasak-chi?
Masalan, bizda 1.2345 bor va uni 2 raqamga yaxlitlash kerak, faqat 1.23 ni olish.
Buning ikki usuli bor:
-
Koâpaytirish va boâlish.
Masalan, raqamni kasr nuqtasidan keyin 2-raqamga yaxlitlash uchun biz raqamni
100ga koâpaytirib, yaxlitlash funksiyasini chaqirib, keyin orqaga boâlishimiz mumkin.let num = 1.23456; alert(Math.round(num * 100) / 100); // 1.23456 -> 123.456 -> 123 -> 1.23 -
toFixed(n) usuli raqamni nuqtadan keyin
nraqamga yaxlitlaydi va natijaning satr koârinishini qaytaradi.let num = 12.34; alert(num.toFixed(1)); // "12.3"Bu
Math.roundga oâxshab, eng yaqin qiymatga yuqoriga yoki pastga yaxlitlaydi:let num = 12.36; alert(num.toFixed(1)); // "12.4"Eâtibor bering,
toFixedning natijasi satrdir. Agar kasr qismi kerakligidan qisqaroq boâlsa, oxiriga nollar qoâshiladi:let num = 12.34; alert(num.toFixed(5)); // "12.34000", aynan 5 ta raqam qilish uchun nollar qo'shildiBiz uni unary plus yoki
Number()chaqiruvi yordamida raqamga aylantira olamiz, masalan+num.toFixed(5)deb yoza olamiz.
Noaniq hisoblar
Ichki jihatdan raqam 64-bitli IEEE-754 formatida ifodalanadi, shuning uchun raqamni saqlash uchun aniq 64 bit mavjud: ulardan 52 tasi raqamlarni saqlash uchun, 11 tasi kasr nuqtasining oârnini saqlash uchun va 1 bit belgi uchun ishlatiladi.
Agar raqam haqiqatan ham juda katta boâlsa, u 64-bitli xotirani toâldirib, maxsus raqamli qiymat Infinity ga aylanishi mumkin:
alert(1e500); // Infinity
Kamroq aniq boâlishi mumkin, lekin tez-tez sodir boâladigan narsa â aniqlik yoâqolishi.
Ushbu (notoâgâri!) tenglik testini koârib chiqing:
alert(0.1 + 0.2 == 0.3); // false
Toâgâri, agar biz 0.1 va 0.2 ning yigâindisi 0.3 ekanligini tekshirsak, false olamiz.
Gâalati! U holda 0.3 boâlmasa nima?
alert(0.1 + 0.2); // 0.30000000000000004
Voy! Tasavvur qiling, siz elektron xarid saytini yaratyapsiz va tashrif buyuruvchi savatiga $0.10 va $0.20 tovarlarni qoâyadi. Buyurtma umumiy summasi $0.30000000000000004 boâladi. Bu har kimni hayratga soladi.
Lekin nima uchun bunday boâladi?
Raqam xotirada binary shaklda, bitlar ketma-ketligi â birlar va nollar sifatida saqlanadi. Lekin oânli raqam tizimida oddiy koârinadigan 0.1, 0.2 kabi kasrlar aslida binary shaklida cheksiz kasrlardir.
alert((0.1).toString(2)); // 0.0001100110011001100110011001100110011001100110011001101
alert((0.2).toString(2)); // 0.001100110011001100110011001100110011001100110011001101
alert((0.1 + 0.2).toString(2)); // 0.0100110011001100110011001100110011001100110011001101
0.1 nima? Bu oânni birga boâlish 1/10, oândan bir. Oânli raqam tizimida bunday raqamlar osongina ifodalanadi. Uni uchdan biriga solishtiring: 1/3. U cheksiz kasr 0.33333(3) ga aylanadi.
Demak, 10 ning darajalariga boâlish oânli tizimda yaxshi ishlashi kafolatlangan, lekin 3 ga boâlish emas. Xuddi shu sababga koâra, binary raqam tizimida 2 ning darajalariga boâlish kafolatlangan, lekin 1/10 cheksiz binary kasrga aylanadi.
Binary tizim yordamida aniq 0.1 yoki aniq 0.2 ni saqlashning hech qanday usuli yoâq, xuddi oânli kasr sifatida uchdan birini saqlashning imkoni yoâqligi kabi.
IEEE-754 raqamli formati buni eng yaqin mumkin boâlgan raqamga yaxlitlash orqali hal qiladi. Bu yaxlitlash qoidalari odatda bizga âkichik aniqlik yoâqolishiâ ni koârishga imkon bermaydi, lekin u mavjud.
Buni amalda koârishimiz mumkin:
alert((0.1).toFixed(20)); // 0.10000000000000000555
Va ikkita raqamni qoâshganimizda, ularning âaniqlik yoâqolishlariâ qoâshiladi.
Shuning uchun 0.1 + 0.2 aniq 0.3 emas.
Xuddi shu muammo koâplab boshqa dasturlash tillarida mavjud.
PHP, Java, C, Perl va Ruby aynan bir xil natijani beradi, chunki ular bir xil raqamli formatga asoslanadi.
Muammoni hal qila olamizmi? Albatta, eng ishonchli usul â natijani toFixed(n) usuli yordamida yaxlitlashdir:
let sum = 0.1 + 0.2;
alert(sum.toFixed(2)); // "0.30"
Eâtibor bering, toFixed har doim satr qaytaradi. U kasr nuqtasidan keyin 2 ta raqam borligini taâminlaydi. Bu elektron xarid qilish saytimiz boâlsa va $0.30 koârsatish kerak boâlsa, aslida qulay. Boshqa holatlarda uni raqamga aylantirish uchun unary plus ishlatishimiz mumkin:
let sum = 0.1 + 0.2;
alert(+sum.toFixed(2)); // 0.3
Shuningdek, raqamlarni butun sonlarga aylantirish uchun vaqtincha 100 ga (yoki kattaroq raqamga) koâpaytirib, matematik amallarni bajarib, keyin orqaga boâlishimiz mumkin. Butun sonlar bilan matematik amallar qilayotganimiz uchun xato biroz kamayadi, lekin boâlishda hali ham olamiz:
alert((0.1 * 10 + 0.2 * 10) / 10); // 0.3
alert((0.28 * 100 + 0.14 * 100) / 100); // 0.4200000000000001
Demak, koâpaytirish/boâlish yondashuvi xatoni kamaytiradi, lekin uni butunlay olib tashlamaydi.
Baâzan kasrlardan butunlay qochishga harakat qilishimiz mumkin. Masalan, agar doâkon bilan ish qilayotgan boâlsak, narxlarni dollar oârniga sentda saqlashimiz mumkin. Lekin agar 30% chegirma qoâllasak-chi? Amalda kasrlardan butunlay qochish kamdan-kam mumkin. Kerak boâlganda âdumlarniâ kesish uchun shunchaki yaxlitlang.
Buni ishga tushirib koâring:
// Salom! Men o'z-o'zimni oshiradigan raqamman!
alert( 9999999999999999 ); // 10000000000000000 ni ko'rsatadi
Bu xuddi shu muammoga duchor: aniqlik yoâqolishi. Raqam uchun 64 bit bor, ulardan 52 tasini raqamlarni saqlash uchun ishlatish mumkin, lekin bu yetarli emas. Shunday qilib, eng kam ahamiyatli raqamlar yoâqoladi.
JavaScript bunday hodisalarda xato bermaydi. U raqamni kerakli formatga moslashtirishga qoâlidan kelgancha harakat qiladi, lekin afsuski, bu format yetarlicha katta emas.
Raqamlarning ichki koârinishining yana bir qiziq natijasi â ikkita nolning mavjudligi: 0 va -0.
Buning sababi shundaki, belgi bitta bit bilan ifodalanadi, shuning uchun nolni oâz ichiga olgan har qanday raqam uchun oârnatilishi yoki oârnatilmasligi mumkin.
Koâp hollarda bu farq sezilmaydi, chunki operatorlar ularni bir xil deb koârishga moslashtirilgan.
Testlar: isFinite va isNaN
Ushbu ikkita maxsus raqamli qiymatni eslaysizmi?
Infinity(va-Infinity) hamma narsadan kattaroq (kichikroq) boâlgan maxsus raqamli qiymat.NaNxatoni ifodalaydi.
Ular number tipiga tegishli, lekin âoddiyâ raqamlar emas, shuning uchun ularni tekshirish uchun maxsus funksiyalar mavjud:
-
isNaN(value)oâz argumentini raqamga aylantiradi va keyin uniNaNekanligini tekshiradi:alert(isNaN(NaN)); // true alert(isNaN("str")); // trueLekin bizga bu funksiya kerakmi?
=== NaNsolishtiruvidan foydalana olmaymizmi? Afsuski yoâq.NaNqiymati oâziga ham teng kelmasligida noyobdir:alert(NaN === NaN); // false -
isFinite(value)oâz argumentini raqamga aylantiradi va agar u oddiy raqam boâlsatrueqaytaradi,NaN/Infinity/-Infinityboâlmasa:alert(isFinite("15")); // true alert(isFinite("str")); // false, chunki maxsus qiymat: NaN alert(isFinite(Infinity)); // false, chunki maxsus qiymat: Infinity
Baâzan isFinite satr qiymati oddiy raqam ekanligini tekshirish uchun ishlatiladi:
let num = +prompt("Raqam kiriting", "");
// Infinity, -Infinity yoki raqam emas deb kiritmaguningizcha true bo'ladi
alert(isFinite(num));
Eâtibor bering, boâsh yoki faqat boâshliq boâlgan satr isFinite ni oâz ichiga olgan barcha raqamli funksiyalarda 0 deb hisoblanadi.
Number.isNaNvaNumber.isFiniteNumber.isNaN va Number.isFinite usullari isNaNvaisFinitefunksiyalarining âqattiqroqâ versiyalaridir. Ular oâz argumentlarini raqamga avtomatik aylantirmaydi, balki unumber tipiga tegishli ekanligini tekshiradi.
-
Number.isNaN(value)agar argumentnumbertipiga tegishli boâlsa va uNaNboâlsatrueqaytaradi. Boshqa barcha hollardafalseqaytaradi.alert(Number.isNaN(NaN)); // true alert(Number.isNaN("str" / 2)); // true // Farqga e'tibor bering: alert(Number.isNaN("str")); // false, chunki "str" string tipiga tegishli, number tipiga emas alert(isNaN("str")); // true, chunki isNaN "str" satrini raqamga aylantiradi va bu aylantirishning natijasida NaN ni oladi -
Number.isFinite(value)agar argumentnumbertipiga tegishli boâlsa va uNaN/Infinity/-Infinityboâlmasatrueqaytaradi. Boshqa barcha hollardafalseqaytaradi.alert(Number.isFinite(123)); // true alert(Number.isFinite(Infinity)); // false alert(Number.isFinite(2 / 0)); // false // Farqga e'tibor bering: alert(Number.isFinite("123")); // false, chunki "123" string tipiga tegishli, number tipiga emas alert(isFinite("123")); // true, chunki isFinite "123" satrini 123 raqamiga aylantiradi
Maâlum maânoda Number.isNaN va Number.isFinite isNaN va isFinite funksiyalaridan oddiyroq va toâgâridanroq. Amalda esa isNaN va isFinite koâproq ishlatiladi, chunki yozish qisqaroq.
Object.is bilan solishtirish=== kabi qiymatlarni solishtiradigan, lekin ikkita chekka holat uchun ishonchliroq boâlgan maxsus oârnatilgan Object.is usuli mavjud:
- U
NaNbilan ishlaydi:Object.is(NaN, NaN) === true, bu yaxshi narsa. 0va-0qiymatlari farqli:Object.is(0, -0) === false, texnik jihatdan bu toâgâri, chunki ichki jihatdan raqamda boshqa barcha bitlar nol boâlsa ham farqli boâlishi mumkin boâlgan belgi biti bor.
Boshqa barcha hollarda Object.is(a, b) a === b bilan bir xil.
Biz bu yerda Object.is ni eslatamiz, chunki u JavaScript spetsifikatsiyasida tez-tez ishlatiladi. Ichki algoritm ikkita qiymatni aynan bir xil ekanligi uchun solishtirishga kerak boâlganda, u Object.is dan foydalanadi (ichki jihatdan SameValue deb ataladi).
parseInt va parseFloat
Plus + yoki Number() yordamida raqamli aylantirish qatâiy. Agar qiymat aniq raqam boâlmasa, u muvaffaqiyatsiz boâladi:
alert( +"100px" ); // NaN
Yagona istisno â satrning boshida yoki oxirida boâshliqlar, ular eâtiborga olinmaydi.
Lekin haqiqiy hayotda bizda koâpincha CSS dagi "100px" yoki "12pt" kabi birliklardagi qiymatlar bor. Shuningdek, koâplab mamlakatlarda valyuta belgisi miqdordan keyin keladi, shuning uchun bizda "19â¬" bor va undan raqamli qiymat chiqarishni istaydi.
parseInt va parseFloat buning uchun.
Ular satrdan raqamni âoâqiydiâ, toki iloji bor. Xato boâlsa, toâplangan raqam qaytariladi. parseInt funksiyasi butun sonni qaytaradi, parseFloat esa suzuvchi nuqta raqamini qaytaradi:
alert( parseInt('100px') ); // 100
alert( parseFloat('12.5em') ); // 12.5
alert( parseInt('12.3') ); // 12, faqat butun qism qaytariladi
alert( parseFloat('12.3.4') ); // 12.3, ikkinchi nuqta o'qishni to'xtatadi
parseInt/parseFloat NaN qaytaradigan holatlar mavjud. Bu hech qanday raqam oâqilmaganida sodir boâladi:
alert( parseInt('a123') ); // NaN, birinchi belgi jarayonni to'xtatadi
parseInt(str, radix) ning ikkinchi argumentiparseInt() funksiyasi ixtiyoriy ikkinchi parametrga ega. U raqam tizimining asosini belgilaydi, shuning uchun parseInt hex raqamlar, binary raqamlar va boshqa satrlarni ham tahlil qila oladi:
alert( parseInt('0xff', 16) ); // 255
alert( parseInt('ff', 16) ); // 255, 0x siz ham ishlaydi
alert( parseInt('2n9c', 36) ); // 123456
Boshqa matematik funksiyalar
JavaScript matematik funksiyalar va konstantalarning kichik kutubxonasini oâz ichiga olgan oârnatilgan Math obyektiga ega.
Bir nechta misol:
Math.random()-
0 dan 1 gacha tasodifiy raqam qaytaradi (1 ni oâz ichiga olmaydi).
alert( Math.random() ); // 0.1234567894322 alert( Math.random() ); // 0.5435252343232 alert( Math.random() ); // ... (har qanday tasodifiy raqamlar) Math.max(a, b, c...)vaMath.min(a, b, c...)-
Ixtiyoriy miqdordagi argumentlardan eng katta va eng kichigini qaytaradi.
alert( Math.max(3, 5, -10, 0, 1) ); // 5 alert( Math.min(1, 2) ); // 1 Math.pow(n, power)-
nni berilgan darajaga koâtaradi.alert( Math.pow(2, 10) ); // 2 ning 10-darajasi = 1024
Math obyektida koâproq funksiyalar va konstantalar mavjud, jumladan trigonometriya, ularni Math obyekti uchun hujjatlarda topishingiz mumkin.
Xulosa
Koâp nollar bilan raqamlar yozish uchun:
- Raqamga nollar sonini eâtibor bilan
"e"ni qoâshing. Masalan:123e66 ta nol bilan123bilan bir xil123000000. "e"dan keyingi salbiy raqam raqamni berilgan nollar bilan 1 ga boâlinishiga sabab boâladi. Masalan,123e-60.000123(123milliondan biri) ni anglatadi.
Turli raqam tizimlari uchun:
- Hex (
0x), octal (0o) va binary (0b) tizimlarda raqamlarni toâgâridan-toâgâri yozish mumkin. parseInt(str, base)strsatrini berilganbaseasosli raqam tizimida butun songa tahlil qiladi,2 ⤠base ⤠36.num.toString(base)raqamni berilganbaseasosli raqam tizimida satrga aylantiradi.
Oddiy raqam testlari uchun:
isNaN(value)oâz argumentini raqamga aylantiradi va keyin uniNaNekanligini tekshiradiNumber.isNaN(value)argumentinumbertipiga tegishli ekanligini tekshiradi va agar shunday boâlsa, uniNaNekanligini tekshiradiisFinite(value)oâz argumentini raqamga aylantiradi va keyin uniNaN/Infinity/-Infinityemasligi uchun tekshiradiNumber.isFinite(value)argumentinumbertipiga tegishli ekanligini tekshiradi va agar shunday boâlsa, uniNaN/Infinity/-Infinityemasligi uchun tekshiradi
12pt va 100px kabi qiymatlarni raqamga aylantirish uchun:
- âYumshoqâ aylantirish uchun
parseInt/parseFloatdan foydalaning, u satrdan raqamni oâqiydi va xatogacha oâqiy olgan qiymatni qaytaradi.
Kasrlar uchun:
Math.floor,Math.ceil,Math.trunc,Math.roundyokinum.toFixed(precision)yordamida yaxlitlang.- Kasrlar bilan ishlashda aniqlik yoâqolishi borligini eslashni unutmang.
Koâproq matematik funksiyalar:
- Kerak boâlganda Math obyektiga qarang. Kutubxona juda kichik, lekin asosiy ehtiyojlarni qoplashi mumkin.
Izohlar
<code>yorlig'ini ishlating, bir nechta satrlar uchun - ularni<pre>yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepenâ¦)