Internet Derazalar Android
Kengaytirmoq

JavaScript-da oddiy yaxlitlik qoidalari. Biz usullarni o'rganamiz va amalda qo'llanilamiz

Ushbu maqolada raqamlar, matematik operatorlar, satrda raqamni o'zgartirish usullarini, shuningdek, boshqa muhim fikrlarni batafsil ko'rib chiqing.

Isfinit funktsiyasi

Isfinit xususiyati sizga dalil cheklangan raqam ekanligini tekshirishga imkon beradi.

Javob sifatida, agar argument cheksizlik bo'lsa, - agar bu maxsus qiymatlardan biriga to'g'ri keladi. Aks holda, bu funktsiya haqiqat qiymatini qaytaradi.

Isfinit (73); // haqiqiy isfinit (-1/0); // yolg'on isfinit (cheksizlik); // soxta iasfinit (Nan); // soxta isfinit ("matn"); // yolg'on

JavaScript-dagi global isfinitning global funktsiyasidan tashqari, boshqa raqamli. Isfinitdan farqli o'laroq, u raqamga majburiy dalil amalga oshirmaydi.

Isfinit ("73"); // haqiqiy raqam.hhicinit ("73"); // yolg'on

Isnan xususiyatlari

ISNAN funktsiyasi argument raqam ekanligini aniqlash uchun mo'ljallangan yoki unga aylantirilishi mumkin. Agar shunday bo'lsa, ISNAN funktsiyasi noto'g'ri qaytadi. Aks holda, bu haqiqatni qaytaradi.

Isnan (nan); // haqiqiy isnan ("25px"); // haqiqat, chunki 20px isnan raqami emas (25.5); // soxta isnan ("25.5"); // soxta isnan (""); // yolg'on, chunki Bo'shliq yoki nafaqat bo'sh joylar 0 isnan (null) ga aylantiriladi; // yolg'on, chunki Nol qiymat isnan (haqiqiy) ga aylantiriladi (to'g'ri); // yolg'on, chunki Haqiqiy qiymat 1 isnan (noto'g'ri) ga aylantiriladi; // yolg'on, chunki Soxta qiymat 0 ga aylantiriladi

Agar ushbu harakat turini olib kelmasdan amalga oshirilishi kerak bo'lsa, u holda. Ushbu usul ECMASCRIPLE 6 dan boshlab tilga kiritildi.

Qanday qilib ketma-ket raqamni aniq o'zgartirasiz?

Bu aniq bir qatorga quyidagi yo'llar bilan keltirilgan:

1. Foydalanish birjasi operator +.bu qiymatdan oldin joylashtirilishi kerak.

+ "7.35"; // 7.35 + "Matn"; // nan.

Ushbu usul satrning boshida va oxirida bo'sh joyni, shuningdek \\ n (satr tarjima qilish).

+ "7.35"; //7.35 + "7.35 \\ n"; //7.35

Ushbu usuldan foydalanib, bo'shliq yoki \\ n 0 raqamiga tarjima qilinganligi sababli, shuningdek, shuningdek, NUL ma'lumotlar turi va mantiqiy qiymatlarni o'zgartirishi kerakligiga e'tibor berish kerak. raqam.

Nol; // 0 + haqiqat; // 1 + noto'g'ri; ///0 + ""; // 0.

2. Findint funktsiyasi. Ushbu xususiyat konversiya uchun mo'ljallangan. butun son uchun argument. Foydalanishdan farqli o'laroq birjasi operator +., bu usul sizga satrni raqamga almashtirishga imkon beradi hamma belgilar raqamli emas. Birinchi belgidan boshlab satrni o'zgartira boshlaydi. Va u raqamli bo'lmagan ramz bilan uchrashishi bilanoq, bu xususiyat uning ishlashini to'xtatadi va natijada olingan raqamni qaytaradi.

Tekisin ("18px"); // 18 tahliliy tahlil ("33,3%"); // 33.

Ushbu xususiyat turli raqam tizimlari (ikkilik, sakkiz, o'nlik, o'nlik) bilan ishlashi mumkin. Eslatma, raqam tizimining asosida 2 ta tortishuv orqali amalga oshiriladi.

Parvozesint ("18px", 10); // 18 tahliliy tahlil ("33,3%", 10); // 33 tahliliy tahlil ("101", 2); // 5 tahliliy tahlil ("B5", 16); // 181.

JavaScript-da tahlil qilishda tahlil qilingan, bir nechta raqamli. Ushbu usul tahlil qilishdan farq qilmaydi va ECMASScript 2015 spetsifikatsiyasi (6) bilan JavaScript-da kiritildi.

3. Parsfloat funktsiyasi. Parsfletout xususiyati frakal raqamga o'tishdan tashqari, tahlilga o'xshaydi.

Parsphflout ("33,3%"); //33.3.

Bundan tashqari, tahlil qilish xususiyati, tahliliy rangda, 2 ta dalilga ega emas, shuning uchun u har doim o'nlik raqamli tizim tizimidagi raqam sifatida satrni raqam sifatida ko'rib chiqishga harakat qiladi.

Parsphflout ("3.14"); Parsfloat ("314E-2"); Parsphflout ("0.0314E + 2");

JavaScript-da Parsfletout funktsiyasi bilan bir qatorda, bir raqamli. Ushbu usul Parsfletout funktsiyasidan farq qilmaydi va Eciscript 2015 spetsifikatsiyasi (6) bilan JavaScript-da joriy etildi.

Satrdagi raqamni o'zgartirish

Tostring usulidan foydalanib, raqamni satrda aylantirishingiz mumkin.

(12.8) .tosartring (); //_12.8 "

Tostring usuli, shuningdek, raqamni aniq olib tashlash kerak bo'lgan raqam tizimining asosini belgilashga imkon beradi:

(255) .O'zlar (16); // "ff"

O'zgaruvchan raqamni qanday tekshirish kerak

Ushbu qiymat o'zgaruvchisi quyidagi usullardan biri yordamida o'zgaruvchan bo'lishi mumkinligini aniqlash uchun:

1. ISNAN va ISFINIT funktsiyalaridan foydalanish:

! // MyVar - O'zgaruvchi bo'lsa (ISNAN (parseFloat (MyVar)) && iSfinite (parseFloat (MyVar)) (// MyVar bo'lgan bir qator yoki unga berilishi mumkin);

Funktsiya shaklida:

// Funktsional (Qaytish! Isnan (Parsfloat (qiymat)) && iSFinit (Parsfinoat (qiymat)); Konsol.log (isnumerik (myvar)); // haqiqat.

Ushbu usul sizga belgilangan qiymat yoki unga berilishi mumkinligini aniqlash imkonini beradi. Ushbu parametr bo'sh satr, bo'shliqlar qatori, nol, cheksizlik, - cheksizlik, haqiqiy va yolg'on deb hisoblamaydi.

2. Operator va ISFINIT funktsiyalaridan foydalanib, isnan:

// funktsiyaning raqami (qiymat) ning soni (qiymatga) \u003d\u003d\u003d 'qiymatini (! Lang: raqami) deb tekshiradigan funktsiya." && isFinite(value) && !isNaN(value); }; // использование функции isNumber isNumber(18); //true // использование функций для проверки текстовых значений isNumber(parseFloat("")); //false isNumber(parseFloat("Infinity")); //false isNumber(parseFloat("12px")); //true !}

Ushbu xususiyat belgilangan qiymat raqamning turi ekanligini va u o'ziga xos cheksizlikka tegishli emasmi yoki yo'qmi, - tanqidiylik va nan qiymatlaridan biriga tegishli emasligini aniqlaydi. Esli shunday, keyin bu funktsiya haqiqatni qaytaradi.

3. Ecmaccript 6 raqamidan foydalanish. Shartnoma (qiymat) usuli. Ushbu usul belgilangan qiymatni butun son ekanligini aniqlash imkonini beradi.

Raqam. ("20") // yolg'on, chunki Ushbu usul satrni raqam raqamiga tarjima qilmaydi. (20); // haqiqat, chunki Ushbu qiymat raqam

Hatto va toq sonlar

Raqamni quyidagi funktsiyalardan foydalanayotganligini yoki g'alatiligini tekshiring:

// Funktsiyasini o'qish funktsiyasi ISVEN (N) (N% 2 \u003d\u003d 0; N) (N) (N% 2) \u003d\u003d (N% 2) \u003d\u003d 2-ni qaytarish funktsiyasi 1;)

Ammo bunday chekni o'tkazishdan oldin, belgilangan qiymat raqami ekanligiga ishonch hosil qilish tavsiya etiladi:

Qiymati \u003d 20; Agar ((qiymat) (qiymat) (ISEVEN (ISEVEN (ISEVEN (ISEVEN) ("Raqamli" + + baholash () + "- ingichka");

JavaScript-da oddiy raqamlar

2 dan 100 gacha bo'lgan oddiy raqamlar JavaScript olib tashlangan misolni ko'rib chiqing.

// Funktsiya funktsiyasi noto'g'ri funktsiyani tasdiqlovchi funktsiya (qiymati) (ISNAN (ISNAN) (ISNAN) (qiymat) || qiymati $ 1 || qiymat< 2) return false; var max=Math.floor(Math.sqrt(value)); for (var i = 2; i< = max; i++) { if (value%i==0) { return false; } } return true; } // создать массив, который будет содержать простые числа от 2 до 100 var primaryNumber = ; for (var i = 2; i <= 100; i++) { if(isPrime(i)) primaryNumber.push(i); } // вывести в консоль простые числа от 2 до 100 console.log(primaryNumber);

JavaScript-da yaxlitlash

Har xil usullarda JavaScript-dagi barcha qiymatga fraksion raqamni yumaloqlang.

1. Mate.Floor, Math.ceyil va matematikadan aniq ishlab chiqilgan. Math.floor usuli fraktsiya raqamini eng yaqin holda aylantiradi, i.e. Shunchaki kasr qismini bekor qiling. Math.ceyil fraksion raqamni eng yaqin butun tomonga egadi. Matematika kasr qismi qiymatiga qarab yuqoriga yoki pastga qarab turadi. Agar fraksion qismi 0,5 dan katta yoki teng bo'lsa, unda yuqoriga, boshqacha tweaking amalga oshiriladi.

Konsol.log (Math.flo'chi (7.9)); // 7 konsol.log (Mathchil (7.2)); // 8 konsol.log (Math.Round (7.5)); // sakkizta

2. TOFINEDTE-ni ishlatish. Ushbu usul raqamning kasq qismini ushbu aniqlikka aylantiradi. Yaxlitlik natijasi satr sifatida daromadlanadi.

Konsol.log (7.987.toced (2)); // yoki 3.99 "

Agar ushbu raqamning belgilangan aniqligini shakllantirish uchun verguldan keyin belgilangan belgilar, u noldan to'ldiriladi.

Konsol.log (7.987.toced (5)); // yoki 3.98700 "

3. Toprecial usul orqali. Ushbu usul ko'rsatilgan aniqlik bilan raqamni anglatadi. Shu bilan birga, bu nafaqat fraktsion, balki sonning butun qismini ham yutib olishi mumkin. Olingan raqam, natijada belgilangan vergul yoki eksponensial shaklda keltirilgan natijaga qarab tasvirlangan.

Konsol.log ((1001) .TRECRECION (2)); // / yoki qidirish ((1001) konsol ((1001) .Borreksice (5)); // yoki taklifdagi konsol ((12.4) .Bastid (1)); // "1e + 1" konsol.log ((12.4) .Bu doprekis (2)); // "12" konsol.log ((12.4) .TRECRECITE (3)); //_12.4 "konsol ((12.4) .Bastid (5)); // "12,400"

4. mantiqiy operatorlardan foydalanish yoki yoki.

// ikki martalik manbali konsol yordamida (~~ 7.9); // 7 // mantiqiy yoki noldan foydalangan holda: konsol.log (7.9 ^ 0); // 7.

Sonning umuman va kasr qismi

Mate.Floor () va tahliliy va tahliliy () usulidan foydalanib raqamning bir qismini olishingiz mumkin:

Konsol.log (Math.fluor (7.21)); // 7 konsol (tahlil qilish) (7.21)); // 7.

Siz raqamning kasr qismini olishingiz mumkin (%). Ushbu operator birinchi raqamni ikkinchisiga bo'lishdan olinadigan qoldiqni qaytaradi. Bunday holda, 1 ta raqam sifatida 1 tadan foydalanish kerak.

Konsol.log (7,21% 1); // 0.2099999999999999999999999999999 yil // SecoLon konsoli (7,21% 1) bo'lganidan keyin 2 ta belgining aniqligi bilan .tomonlangan (2)); // "0.21"

Bundan tashqari, kasr qismi hisoblash orqali ham olinishi mumkin:

Var raqam \u003d 7.21; Var FrancricNumber \u003d raqam - matematika (Math.Abs \u200b\u200b(raqam)); Konsol.log (fraktsiya); // 0.20999999999 yil.

Raqam bo'linadimi yoki yo'qmi

Maqsadlar sonini foiz operatori yordamida topish mumkinligini aniqlash uchun:

Var raqam \u003d 9; // Agar 3 raqami sonining qoldiqlari 0 bo'lsa, agar ha, aks holda (% 3 \u003d\u003d 0) ("% 3 \u003d\u003d 0" ("raqami + raqam +" + "3 ga bo'linadi. );) Boshqa (konsol ("Ruxsatnoma" ("" Raqam "+ raqami +" 3 "gacha bo'lmadi;););)

Raqamlarni formatlash

JavaScript-da mintaqaviy standartlarga muvofiq mahsulot ishlab chiqarishni formatlashtiring (Operatsion tizimi til sozlamalari) tokalestring () usuliga muvofiq ruxsat beradi.

Masalan, standart tizimda o'rnatilgan mintaqaviy standartlarga muvofiq raqamni formatlashni amalga oshiring:

Var raqam \u003d 345.46; Konsol.log (raqam raqami); // "345.46"

Masalan, biz Rossiyaning mintaqaviy standartlariga muvofiq raqamni formatlashni amalga oshiramiz (ru):

Konsol.log ((108.1) .Tolokalting ("RU-RU")); // "108.1"

Ushbu usul shuningdek, raqamni valyuta shaklida quyidagilarni formatlash uchun ishlatilishi mumkin:

Konsol.log ((2540.125) .Tolokarestr ("RU-Ru", ("Valyuta", valyutasi: "RU" valyutasi "))))))))" "Sharh; // "2 540,13 ₽" konsol ((89.3) .Tolokalting ("RU-Ru", ("Valyuta", "USD"))))) "" Sharh; // "$ 89.30" konsol ((2301.99) .Tolokarding ("RU-Ru" ("Valyuta", "Valyuta", "Valyuta", "Valyuta", "Valyuta", "Valyuta")))) "); // "2 301,9 €"

Qiziqish shaklida foizlar.

Konsol.log ((0.45) .Tolokalting ("RU-RU", ("foizi"))))) " // "45%"

To'q qog'ozni bo'shatishda raqamni tozalang (undanggoging mulk):

Konsol.log ((125452.32) .Tolokaresti ("RU-ROGING: OGROGRING: TRUPROGING: TUG'ILGAN: RAFTAPING)))); // "125 452.32"

Verguldan keyin ma'lum bir raqam (2) bilan namoyish qilish:

Konsol.log ((1240.4564) .Tolokarestion ("RU-Ru", (mittiframmaDig): 2))); // "1 240.46"

Raqamlarni taqqoslash

JavaScript-da raqamlarni taqqoslash uchun quyidagi operatorlar qo'llaniladi: \u003d\u003d (teng),! \u003d (Yana),\u003e\u003e (ko'proq emas),\u003e< (меньше), >\u003d (ko'proq yoki teng),<= (меньше или равно).

Masalan, biz ikkita raqamni taqqoslaymiz:

Konsol.log (2\u003e 3); // soxta konsol.log (5\u003e \u003d 3); // haqiqat.

Raqamlarni kasr qism bilan taqqoslaganda, ushbu hisob-kitoblar paytida paydo bo'ladigan xatolarni ko'rib chiqish kerak.

Masalan, JavaScript-da raqamlar yig'indisi (0,2 + 0.4) 0,6 ga teng emas:

Konsol.log ((0,2 + 0.4) \u003d\u003d 0.6); // yolg'on

Xatolar amalga oshiriladi, chunki kompyuterning yoki boshqa elektron qurilmalarning barcha hisob-kitoblari 2 raqamli tizimda ishlab chiqariladi. Ular. Ba'zi tadbirlarni bajarishdan oldin, kompyuter raqamni raqam tizimining 2 qismida 2-sonni o'zgartirishi kerak. Ammo, hech qanday kasr o'nlik raqami aniq bo'lishi mumkin.

Masalan, 0.25 10 Ikkilik tizimga nisbatan aniq o'zgartiriladi.

0,125 × 2 \u003d 0.25 | 0 0,25 × 2 \u003d 0,5 | 0 0,5 × 2 \u003d 1 | 1 0.125 10 \u003d 0.001 2

Masalan, 0.2 raqamini 2 ta tizimga faqat aniq aniqlik bilan o'zgartirilishi mumkin:

0,2 × 2 \u003d 0.4 | 0 0.4 × 2 \u003d 0,8 | 0 0.8 × 2 \u003d 1.A | 1 0,6 × 2 \u003d 1.2 | 1 0.2 × 2 \u003d 0.4 | 0 0.4 × 2 \u003d 0,8 | 0 0.8 × 2 \u003d 1.A | 1 0,6 × 2 \u003d 1.2 | 1 0.2 × 2 \u003d 0.4 | 0 0.4 × 2 \u003d 0.8 | 0 0.8 × 2 \u003d 1.A | 1 0,6 × 2 \u003d 1.2 | 1 ... 0.2 10 \u003d 0.001100110011 ... 2

Natijada, bu xatolar ikki raqamning hisoblash va taqqoslash natijalarini hisoblashga ta'sir qiladi. Ular. Ma'lum bo'lishicha, bu yozuvni quyidagicha ko'rish mumkin:

0.6000000000000001==0.6

Fraktsion qismi bilan raqamlarni hisoblash yoki xaritalashda, siz har doim buni amalga oshirish kerak bo'lgan aniqlikni ko'rsatishingiz kerak.

Masalan, TOFINXED () va eng yuqori usullar yordamida raqamlarni o'nlik joyga taqqoslang:

// TOOXETED () usul konsol.log ((0,2 + 0.4) .trofixlangan (2) \u003d\u003d (0,6) .tomonlangan (2)); // Haqiqiy // eng yuqori darajadagi konsol () usul konsoli ((0,2 + 0.4) .TRekrid (2) \u003d\u003d (0,6) .Bastid (2)); // haqiqat.

Asosiy matematik operatsiyalar

JavaScript quyidagi matematik operatorlar mavjud: + (qo'shimcha), * (ajratish), * (qo'shimcha),% (1-ga kamaytirish), - (1 ga kamaytirish).

6 + 3 // 9 6-3 // 3 6 * 3 // 18 6% // 2 6% 3 // 0 // 0 // 0 // 0 // 0 // 0 // 0 // 0 // 0 // 0 // 0, i.e. 6: 3 \u003d 2 \u003d\u003e 6-3 * 2 \u003d\u003e OST (0) 5% 2 // 1, i.e. 5: 2 \u003d 2 (.5) \u003d\u003e 5-2 * 2 \u003d\u003e OST (1) 7,3% //1.3, i.e. 7.3: 2 \u003d 3 (.65) \u003d\u003e 7,3-2 * 3 \u003d/ Operatsiyaning natijasi belgisi birinchi qiymat -9% / //-1/-1/-1/-1/-1/1.5% ning belgisiga teng , ya'ni 9: 2.5 \u003d 3 (.6) \u003d\u003e 9-2.5 * 3 \u003d\u003e OST (1,5) -9% -2.5, i.e. 9: 2.5 \u003d 3 (.6) \u003d\u003e 9-2.5 * 3 \u003d\u003e OST (1,5) -2% 5 // - 2, i.e. 2: 5 \u003d 0 (.4) \u003d\u003e 2-5 * 0 \u003d\u003e OST (2) x \u003d 3; Konsol.log (x ++); // 3-dagi ko'rsatmalar allaqachon 4 ta konsol (x); // 4 x \u003d 3; Konsol.log (++ x); // 4-ni o'rnatadi va X \u003d 5ni ko'rsatadi; Konsol.log (x-); // 5-displeyda allaqachon 4 ta konsol (x) o'rnatiladi; // 4 x \u003d 5; Konsol.log (- x); // 4-to'plamlarni o'rnatadi va JavaScript-dagi qo'shma operatorlarni namoyish qiladi: x + \u003d y (x \u003d xi), x * \u003d y * y), x / \u003d y (x \u003d x / y), x% \u003d y (x \u003d x% y). x \u003d 3; y \u003d 6; x + \u003d y; Konsol.log (x); // 9 x \u003d 3; y \u003d 6; x- \u003d y; Konsol.log (x); // - 3 x \u003d 3; y \u003d 6; x * \u003d y; Konsol.log (x); // 18 x \u003d 3; y \u003d 6; x / \u003d y; Konsol.log (x); //0.5 x \u003d 3; y \u003d 6; x% \u003d y; Konsol.log (x); // 3.

Ko'pincha hisob-kitoblar kerakli diapazonlarning chegaralariga mos kelmaydigan natijalarni beradi. Natijada, mashq qilishingiz kerak JavaScriptni yaxlitlash ma'lum bir qiymatgacha.

Nega dumaloq raqamlar?

JavaScript butun sonlarni saqlamaydi, chunki ularning qadriyatlari suzuvchi nuqta raqamlari shaklida taqdim etiladi. Ko'pgina kasrlar sonini ma'lum miqdordagi yarim soniya bilan ifodalash mumkin emas, shuning uchun JavaScript quyidagilar kabi natijalarni keltirib chiqarishi mumkin:

0.1 * 0.2; > 0.020000000000000004

Amalda, bu hech qanday ahamiyatga ega bo'lmaydi, chunki bu 2 kvinynonda xato haqida gap ketadi. Ammo bu natijaga valfun qiymatlari, foiz yoki fayl hajmini aks ettiruvchi raqamlar bilan ishlashda ta'sir qilishi mumkin. Shuning uchun, siz ma'lum bir o'nlik belgisini qilishingiz kerak.

O'nlik raqamlarni yaxlitlash

O'nlik raqamni, tofiksed () yoki eng yaxshi usullar qo'llaniladi. Ikkalasi ham verguldan keyin ahamiyatli va belgilar sonini belgilaydigan bir tortishuvni o'z ichiga oladi, ular natijaga kiritilishi kerak:

  • agar toliblar uchun () argument aniqlanmasa, standart qiymat 0, ya'ni verguldan keyin alomatlar yo'q; Dalilning maksimal qiymati 20;
  • agar topraklama uchun () argument ko'rsatilmagan bo'lsa, raqam o'zgarmaydi.

var Rownum \u003d 6.25; RANDNUM.TOFIXSED (); \u003e "6" Math.pi.trecice (1); \u003e "3" Var Rownum \u003d 87.335; RANDNUM.TOFIXSED (2); \u003e "87.33" Var Rownum \u003d 87.337; RANDNUME.TRAND (3); \u003e "87.3"

Eslatma

Va tofiksixed () va eng yaxshi harflar sonini emas, balki yumaloq bo'lgan kichik harflarni qaytaring. Bu shuni anglatadiki, RANDNUMNI KO'RSATIShNI KO'RSATADI.

konsol.log (RESNUM + yumaloqlangan); \u003e "6.256"

Agar siz yuzinchi yillarga JavaScriptni yaxlitlashingiz kerak bo'lsa, Parspsflout ():

var Rownum \u003d 6.25; Var yumaloq \u003d Partsfloat (RANDNUM.TOFIXSED (1)); Konsol.log (yumaloqlangan); \u003e 6.3.

tOCXED () va TopRecisicial () ko'p sonli nomzodlarni kesish uchun foydali usullar mavjud. Pul birliklarini ifodalovchi raqamlar bilan ishlash qulay bo'lgan:

var Wholenum \u003d 1 Var Doimcents \u003d Wholenum.toced (2); Konsol.log (dollarlar); \u003e "1.00"

E'tibor bering, agar belgilangan aniqlik parametridan ko'ra ko'proq belgilar bo'lsa, natija ilmiy formatda keltiradi:

var Num \u003d 123.435 Num.stekisol (2); \u003e "1.2e + 2"

Birlik kasrlarni yaxlitlashda xatolarni qanday oldini olish mumkin

Ba'zi hollarda, tofiksed va eng yaxshi ko'rinishda amalga oshiriladi JavaScript-ni kichikroq tomonga aylantirish, ko'proq emas:

var numtest \u003d 1.005; numtest.toced (2); \u003e 1;

Yuqoridagi misolning natijasi 1,01, emas, balki 1. Agar siz ushbu xatolikdan qochishni istasangiz, eksponent raqamlardan foydalanishni tavsiya qilaman:

funktsiya hajmi (qaytarish raqami (qiymat raqami (qiymati + e »+ ni) +" E - "+ Oyliklar);)

Ilova:

dumaloq (1.005,2); \u003e 1.01

Agar yaxlitlashdan ko'ra yanada ishonchli echim kerak bo'lsa, u mavjud MDN..

Epsilon bilan yaxlitlash

Muqobil usul JavaScript o'ndan biriga qadar yaxlitlanadi ES6-da kiritilgan ( javaScript 2015 deb ham tanilgan). « Mashinalar Epsilon»Ikki suzuvchi ikki semizikni taqqoslaganda oqilona xatolik cheklovni ta'minlaydi. Buning davomida taqqoslash natijalarni quyidagicha keltirishi mumkin:

0.1 + 0.2 \u003d\u003d\u003d 0.3\u003e FALSE

Math.epsilon to'g'ri taqqoslash uchun funktsiyada ishlatilishi mumkin:

funktsiya Life (x, y) (Math.Abs \u200b\u200b(x - y)< Number.EPSILON * Math.max(Math.abs(x), Math.abs(y)); }

Funktsiya ikkita dalilni oladi: Bitta tarkibida hisob-kitoblar, ikkinchi kutilgan (yumaloq) natija mavjud. Bu ushbu ikki parametrni taqqoslashni qaytaradi:

keyingi (0,1 + 0,2, 0,3)\u003e Rost

Barcha zamonaviy brauzerlar ES6 matematik funktsiyalarini qo'llab-quvvatlaydilar. Ammo agar siz eski brauzerlarda yordam berishingiz kerak bo'lsa, siz polifilladan foydalanishingiz kerak.

O'nlik sonlarning kesilishi

Oldinroq taqdim etilgan barcha usullar JavaScript o'ndan biriga qadar yaxlitlanadi. Verguldan keyin ikki joyga ijobiy miqdordagi ijobiy sonni kesib oling, uni yana 100 ga ko'paytiring, shunda olingan natijangiz 100 ga bo'linadi:

funktsiya kesilgan (raqam) (Math.truncunc * / 100) / 100-ni qaytaring;) kesilgan (3.1416)\u003e 3.14

Agar biron bir moslashuvchan narsa talab qilinsa, siz buzilgan operatordan foydalanishingiz mumkin:

funktsiya kesilgan (VarxoPerConverter \u003d Math.pow (10, lipiclater); qaytish ~~ (Num * XumporeConverter) / XumpowerConverter;)

Foydalanish:

var Rand Rautint \u003d 35.874993; Kesilgan (randif, 3); \u003e 35.874.

Eng yaqin raqamga yaxlitlash

Amalga oshirish JavaScript umuman yaxlitlash, Math.Rount () ishlatiladi:

Math.Round (4.3)\u003e 4 matematika (4.5)\u003e 5

Eslab qoling " yarim qiymat", Masalan .5, yumaloq.

Eng yaqin butun songa yaxlitlash

Agar siz kichikroq tomondan yumalamoqchi bo'lsangiz, matematikadan () usulidan foydalaning:

Matematika (42.23); \u003e 42 matematikadan (36.93); \u003e 36.

"Pastga" yaxlitlash barcha raqamlar uchun bitta yo'nalishga, shu jumladan salbiy tomonga. Buni cheksiz pollar, shu jumladan poydevor darajasidan past bo'lgan osmono'pariya sifatida tasvirlash mumkin ( salbiy raqamlarni ifodalash). Agar siz podvaldagi liftda bo'lsangiz, 2 va 3 ( qiymatga mos keladigan narsa -2.5), Math.Flaor sizni polga etkazib beradi - 3:

Matematika (-2.5); \u003e -3.

Agar siz bundan qochmoqchi bo'lsangiz, barcha zamonaviy brauzerlarda (mustasno) yordamida JavaScuct () JavaScucent () dan foydalaning Ya'ni / chet):

Matec.trunc (-41.43); \u003e -41

MDN shuningdek ta'minlaydi eski brauzerlarda va ya'ni Math.truncunce-ni qo'llab-quvvatlash uchun uchta polifill.

Eng yaqin butun songacha yaxlitlash

Agar siz o'nlik raqamlarni yuqoriga ko'tarishni istasangiz, matecc.ceil-dan foydalaning. Ushbu usulning harakati, shuningdek, cheksiz lift sifatida tasvirlanishi mumkin: Raqam salbiy yoki ijobiy bo'lsa, har doim omadli "yuqoriga" omadli "yuqoriga" bor.

Math.ceyil (42.23); \u003e 43 matecc.cil (36.93); \u003e 37 Math.ceyil (-36.93); -36

Eng yaqin raqamga yaxlitlash

Agar siz qiymatni eng yaqin raqamga aylantirishingiz kerak bo'lsa, 5-sonli raqamni ajratib turadigan funktsiyani yarating, uni aylanib chiqadi, so'ngra shu qiymatda keltiradi:

strelkaning (raqam) (Num) (Math.RuTounti (Num / 5) * 5;)

Foydalanish:

dumaloq (11); \u003e 10.

Agar siz ikkita belgidan iborat JavaScriptni tugatmoqchi bo'lsangiz, funktsiyalarni boshlang'ich raqami va ko'plik bilan o'tkazishingiz mumkin:

aylanma tartibda (Num, ko'p) (Math.RuTount (raqam / ko'p) * ko'p;)

Funktsiyadan foydalanish, yumaloqlangan raqamni yoqing va uning chaqiruvidagi ko'pligini oshiring:

var boshlang'ich \u003d 11; Var Mabe \u003d 10; Dumaloq strelbacklitle (bir nechta); \u003e 10;

Qiymatlarni faqat katta yoki kichikroq yo'nalishda aylantirish uchun, CEIL yoki poldagi yumaloq funktsiyani almashtiring.

Diapazonga bog'lash

Ba'zan siz ma'lum bir doirada bo'lishi kerak bo'lgan X qiymatini olishingiz kerak. Masalan, sizga 1 dan 100 gacha qiymat kerak, ammo biz 123 qiymatini olamiz. Uni tuzatish uchun siz min () dan foydalanishingiz mumkin () eng kichigi raqamlarni qaytaradi) va maksimal ( maksimal ruxsat etilgan raqamni qaytaradi).

Foydalanish:

var Lowund \u003d 1; Var Heightbound \u003d 100; Varxinut \u003d 123; Var Clamped \u003d Math.MAX (LOGUBOUND, Math.min (raqamutape, yuqori)); Konsol.log (siqilgan); \u003e 100;

Siz funktsiya yoki kengaytma sinf raqamini yaratishingiz mumkin.

Endi pol usulini ko'rib chiqing (Tarjima qilingan - Pol)Qaysi biri CEIL usuli, i.e. u kichikroqda yumaloq kasrli raqam.

Ko'rinib turibdiki, pol usuli 35,97 dan 35 gacha, ya'ni kichik tomonda. 0,97 batafsilroq 0,5 (sm. ).

Ushbu darsda matematika ob'ektlarining usullari ko'rib chiqildi, yumaloq kasrli o'nlik raqamlarga ruxsat berish.

Endi uy vazifangizni bajarishingiz kerak.

Ikkita parametrni oladigan xususiyatni yozish vazifangiz.
1. Fraktsiyalar bilan raqamlardan iborat qator.
2. "Davra", "CEIL" yoki "qavat" usulini yaxlitlash.

Chiqishda funktsiya bir xil qatorni chiqarishlari kerak, ammo massivning barcha elementlari ikkinchi parametrda ko'rsatilgan matematika ob'ektidan foydalanib yumaloq bo'lishi kerak.

Manbasi massivi:

var sonbray \u003d;

Birinchidan, ushbu vazifani hal qilish ushbu mavzuning birinchi uchta darsidan uy vazifasini echimlari bilan bir xil bo'lib tuyulishi mumkin. Ammo hamma narsa juda oddiy ...

№1 qaror - diqqat

Vazifaning holati ostida funktsiya ikkita parametrni olishi kerak - Manbasi massivi va usullardan biri: "Davr", "CEIL" yoki "qavat". Buning asosida men men buni qilishga harakat qildim...

Ushbu eritmada ikkita parametr bilan ishlash funktsiyasini yarating va u chaqirilganda, siz funktsiya parametrlarining parametrlari va bitta usulning parametrlari sifatida manba massivini belgilashga harakat qilasiz:
1-o'nlik (Rimesan, davra) - bu holda aylana.

Ammo biz natijani olmaymiz, chunki Siz funktsiya parametri sifatida usul nomini ko'rsatolmaysiz.

Eslatma: Axir, bu "Davom", "CEIL" va "qavat" degani emas tirnoqlarga yopishtirilgan.

o'nlik (Rolyr, "Davra") - lekin bunday yozuv ham to'g'ri bo'lmaydi !!!

Qaror №2 - Oldingi qarorni to'g'rilang

Vazifani hal qilishingiz mumkin, funktsiya uchun bitta parametrni belgilashingiz mumkin.


35 - yumaloq element


13 - yumaloq element


17 - yumaloq element


79 - yumaloq element

Bu erda kerakli natijaga erishish mumkin edi: dumalot usuli barcha raqamlarni yumaloqlashtirdi. Lekin shart bajarilmaydiFunktsiya faqat bitta parametrni egallaydi.

3-qaror 3 - ikkita parametr bilan ishlash

Bu erda vazifa to'g'ri hal qilinadi. Buning uchun, JavaScriptdagi shartlar mavzusini eslab qolish va bir vaqtning o'zida bir nechta shartlarni qo'llash kerak edi.

34.82 - Arrayning manba elementi
35 - Katta yuzda dumaloq

12.9 - massivning asl elementi
13 - Eng katta qismiga aylantiring

17.01 - massivning manba elementi
18 - Katta yuzda dumaloq

78.51 - massivning asl elementi
79 - Eng katta qismiga aylantiring

u to'g'ri eritma Uy ishi. Bu erda funktsiya uchun ikkita parametr ko'rsatilgan.

Ushbu echimning oxirgi qatorida harakat qilib ko'ring:
funktsiyaning ikkinchi parametri sifatida o'nlik (REIL ») matematika ob'ektining boshqa" davra "va" pol "va" pol "ning nomlarini belgilaydi.

№4 yechim - ikkita parametrli funktsiya + tezkor usuli

Men oldingi echimni optimallashtirishga qaror qildim va ma'lumotni kiritish uchun maydonni o'z ichiga olgan modal oynani chaqiradigan tezkor usulni qo'shdim.

Endi, buning evaziga siz kirish maydonida dumaloq, pol yoki shiftni usullaridan birining ismini kiritishingiz va tegishli natijani olishingiz mumkin.

Suma, pol yoki CEIL ob'ektining usullari matematikadan biri bo'lib, ular sezilarli miqdordagi fraksiya raqamlari hisoblanadi.