Заманбап JavaScriptте сандардын эки түрү бар:
- JavaScript'те кадимки сандар 64-бит IEEE-754 форматында сакталат , ал "кош тактык калкыма чекиттүү сандар" деп да аталат. Бул биз көбүнчө колдоно турган сандар. Биз бул бөлүмдө алар жөнүндө сөз болот.
BigInt
сандар ыктыярдуу узундуктагы бүтүн сандар менен иштөөгө мүмкүндүк берет. Алар сейрек талап кылынат жана андан чоң же андан азыраак баалуулуктар менен иштөө зарыл болгон учурларда колдонулат . Сандар сейрек талап кылынгандыктан , биз аларды өзүнчө BigInt бөлүмүндө карап чыгабыз .(253-1)
-(253-1)
BigInt
Бул бөлүмдө биз сандардын биринчи түрүн гана карайбыз: типтеги сандар number
. Келгиле, алар менен JavaScriptте кантип иштөөнү тереңирээк карап көрөлү.
Санды жазуу жолдору
Элестеткиле, 1 миллиард деген санды жазышыбыз керек. Эң айкын жолу:
@A@let billion = 1000000000;@A@
Бирок реалдуу жашоодо биз, адатта, көп нөлдөрдүн жазуусун калтырабыз, анткени ката кетирүү оңой. Кыскартылган белги 7 миллиард 300 миллионго "1млрд"
окшош болушу мүмкүн. "7.3млрд"
Бул принцип бардык чоң сандар үчүн иштейт.
JavaScript'те сиз тамганы "e"
санды кыскартуу үчүн колдоно аласыз. Ал санга кошулат жана көрсөтүлгөн нөлдөрдүн санын алмаштырат:
@A@let billion = 1e9; // 1 миллиард, буквально: 1 и 9 нулей
alert( 7.3e9 ); // 7.3 миллиардов (7,300,000,000)@A@
Башкача айтканда, "e"
нөлдөрдүн көрсөтүлгөн саны менен бир санды 1ге көбөйтүү операциясын аткарат.
@A@1e3 = 1 * 1000
1.23e6 = 1.23 * 1000000@A@
Эми өтө кичинекей нерсе жазалы. Мисалы, 1 микросекунд (секунданын миллиондон бири):
@A@let ms = 0.000001;@A@
Микросекундду кыскартылган түрдө жазуу бизге жардам берет "e"
.
@A@let ms = 1e-6; // шесть нулей, слева от 1@A@
Эгерде биз нөлдөрдүн санын эсептесек 0.000001
, алардын саны 6 болот, албетте, туура жазуу 1e-6
.
Башкача айтканда, кийинки терс сан "e"
нөлдөрдүн көрсөтүлгөн саны менен 1ге бөлүүнү билдирет:
@A@// 1 делится на 1 с 3 нулями
1e-3 = 1 / 1000 (=0.001)
// 1.23 делится на 1 с 6 нулями
1.23e-6 = 1.23 / 1000000 (=0.00000123)@A@
Он алтылык, экилик жана сегиздик сандар
Он алтылык сандар JavaScriptте түстөрдү, символдорду коддоону жана башкаларды көрсөтүү үчүн кеңири колдонулат. Албетте, кыска жазуу стили бар: 0x
андан кийин сан.
Мисалы:
@A@alert( 0xff ); // 255
alert( 0xFF ); // 255 (то же самое, регистр не имеет значения@A@)
Экилик жана сегиздик сандар сыяктуу жалпы эмес, бирок алар 0b
экилик жана 0o
сегиздик сандар үчүн да колдоого алынат:
@A@let a = 0b11111111; // бинарная форма записи числа 255
let b = 0o377; // восьмеричная форма записи числа 255
alert( a == b ); // true, с двух сторон число 255@A@
Мындай колдоого ээ болгону 3 сан системасы бар. Башка сан системалары үчүн функцияны колдонууну сунуштайбыз parseInt
(бул бөлүмдө кийинчерээк талкууланат).
toString(негиз)
Метод сан системасындагы num.toString(base)
сандын саптык көрүнүшүн кайтарат .num
base
Мисалы:
@A@let num = 255;
alert( num.toString(16) ); // ff
alert( num.toString(2) ); // 11111111
@A@
base
2
чейин өзгөрүшү мүмкүн 36
(демейки 10
).
Көбүнчө колдонулат:
-
base=16 - түстү он алтылык көрсөтүү, символдорду коддоо ж.б. үчүн сандар
0..9
же болушу мүмкүнA..F
. -
base=2 - көбүнчө биттик операцияларды оңдоо үчүн колдонулат, сандар
0
же1
. -
base=36
0..9
— максималдуу база, цифралар же болушу мүмкүнA..Z
. Башкача айтканда, санды көрсөтүү үчүн бүт латын алфавити колдонулат. Кызыктуусу, сиз36
чоң сандык идентификатордун стенографиялык көрүнүшүн алуу үчүн -digit сан системасын колдоно аласыз. Мисалы, кыска шилтеме түзүү. Бул үчүн, аны жөн гана36
-бит санаруу системасына айландырыңыз:@A@alert( 123456..toString(36) ); // 2n9c@A@
Көңүл бургула! Эки чекит 123456..toString(36)
ката эмес. Эгерде жогорудагы мисалдагыдай эле санга түздөн-түз ыкманы чакыруу керек болсо , анда сандан кийин toString
эки чекит коюшубуз керек ...
Эгерде биз бир чекит коё турган болсок: 123456.toString(36)
, анда бул ката болот, анткени JavaScript синтаксиси биринчи чекиттен кийин ондук бөлүк башталат деп болжолдойт. Эгерде сиз эки чекит койсоңуз, анда JavaScript ондук бөлүк жок экенин түшүнөт жана ыкма башталат.
катары да жазылышы мүмкүн (123456).toString(36)
.
тегеректөө
Сандар менен иштөөдө кеңири колдонулган операциялардын бири – тегеректөө.
JavaScript бир нече камтылган тегеректөө функцияларына ээ:
Math.floor
Тегеректөө: , жана - 3.1
болот .3
-1.1
-2
Math.ceil
Толуктоо: , жана - 3.1
болот .4
-1.1
-1
Math.round
Эң жакын бүтүн санга тегеректөө: , - жана - 3.1
болот .3
3.6
4
-1.1
-1
Math.trunc
(Internet Explorerде колдоого алынбайт)
Бөлчөк бөлүгүн тегеректөөсүз алып салат: , жана - 3.1
болот .3
-1.1
-1
Төмөндө тегеректөө функцияларынын ортосундагы айырмачылыктар менен таблица келтирилген:
Math.floor |
Math.ceil |
Math.round |
Math.trunc |
|
---|---|---|---|---|
3.1 |
3 |
4 |
3 |
3 |
3.6 |
3 |
4 |
4 |
3 |
-1.1 |
-2 |
-1 |
-1 |
-1 |
-1.6 |
-2 |
-1 |
-2 |
-1 |
Бул функциялар ондук бөлүктү иштетүүнүн бардык мүмкүн болгон жолдорун камтыйт. n-ого
Эгер санды ондук сандын санына чейин тегеректөө керек болсочы ?
Мисалы, бизде бар 1.2345
жана биз бир гана санды калтырып, 2 ондук бөлүккө чейин тегеректегибиз келет 1.23
.
Эки чечим бар:
-
Көбөйтүү жана бөлүү.
Мисалы, санды экинчи ондук орунга чейин тегеректөө үчүн, биз санды көбөйтүп
100
, тегерек функцияны чакырып, кайра бөлө алабыз.@A@let num = 1.23456; alert( Math.floor(num * 100) / 100 ); // 1.23456 -> 123.456 -> 123 -> 1.23@A@
-
toFixed(n) ыкмасы санды
n
ондук орунга тегеретет жана натыйжанын сап көрүнүшүн кайтарат.@A@let num = 12.34; alert( num.toFixed(1) ); // "12.3"@A@
Методго окшош маанини өйдө жана ылдый жакынкы санга тегеретет
Math.round
:@A@let num = 12.36; alert( num.toFixed(1) ); // "12.4"@A@
Натыйжа
toFixed
сап экенин эске алыңыз. Эгерде ондук бөлүк керектүүдөн кыска болсо, саптын аягына нөлдөр кошулат:@A@let num = 12.34; alert( num.toFixed(5) ); // "12.34000", добавлены нули, чтобы получить 5 знаков после запятой@A@
Натыйжадагы маанини унардык оператор аркылуу санга айландырсак болот
+
жеNumber()
, мисалы, унардык оператор менен:+num.toFixed(5)
.
Туура эмес эсептөөлөр
JavaScript ичинде сан 64-бит IEEE-754 форматы катары көрсөтүлөт . Санды сактоо үчүн 64 бит колдонулат: алардын 52си цифраларды сактоо үчүн, 11и ондук чекиттин ордун сактоо үчүн, ал эми бир бит белги үчүн сакталган.
Эгер сан өтө чоң болсо, ал 64 биттик сактагычтан ашып кетет, JavaScript чексиздикти кайтарат:
@A@alert( 1e500 ); // Infinity@A@
JavaScript'те сандар менен иштөөдө эң кеңири таралган ката бул тактыкты жоготуу.
Бул (туура эмес!) салыштырууну кара:
@A@alert( 0.1 + 0.2 == 0.3 ); // false@A@
Ооба, ооба, сумма бирдей 0.1
эмес .0.2
0.3
Кызык! Анда эмесе 0.3
?
@A@alert( 0.1 + 0.2 ); // 0.30000000000000004@A@
О! Бул жерде жөн эле туура эмес салыштырууга караганда алда канча көп кесепеттер бар. $0.10
Элестеткиле, сиз онлайн дүкөн жасап жатасыз жана коноктор жана үчүн 2 позициядан буйрутма түзүшөт $0.20
. Акыркы буйрук болот $0.30000000000000004
. Бул бардыгы үчүн сюрприз болот.
Бирок эмне үчүн бул болуп жатат?
Сан эстутумда экилик түрдө, биттердин ырааттуулугу катары сакталат - бирдик жана нөл. Бирок ондук системада жөнөкөй көрүнгөн , сыяктуу бөлчөктөр чындыгында бинардык формадагы чексиз бөлчөк болуп саналат 0.1
.0.2
Башка сөз менен айтканда, бул эмне 0.1
? Бул онго бөлүнгөн бирдик - 1/10
ондон бир. Ондук жазууда мындай сандар үчтөн бирине салыштырганда оңой көрсөтүлөт: 1/3
, ал чексиз бөлчөккө айланат 0.33333(3)
.
Бөлүү 10
ондук санда жакшы иштеши кепилдикке алынат, бирок менен бөлүү 3
андай эмес. Ушул эле себептен улам, бинардык системада бөлүү сөзсүз 2
иштейт, бирок 1/10
чексиз бөлчөккө айланат.
JavaScriptте экилик системанын жардамы менен 0,1 же 0,2 так маанилерин сактоого эч кандай жол жок, ондук санда үчтөн бир бөлүгүн сактоонун жолу жок.
IEEE-754 сан форматы бул маселени мүмкүн болгон эң жакын санга тегеректөө аркылуу чечет. Тегеректөө эрежелери, адатта, бул "кичинекей тактык жоготууларын" көрүүгө мүмкүндүк бербейт, бирок ал бар.
Мисал:
@A@alert( 0.1.toFixed(20) ); // 0.10000000000000000555@A@
Ал эми 2 санды жыйынтыктаганда алардын «так эместиги» да жыйынтыкталат.
Ошондуктан 0.1 + 0.2
- бул чындыгында эмес 0.3
.
Калыстык үчүн, калкыма чекиттик сандар үчүн эсептөөлөрдүн тактыгындагы ката IEEE 754 форматын колдонгон башка тилдерде, анын ичинде PHP, Java, C, Perl, Ruby тилдеринде сакталып калганын белгилейбиз.
Маселени айланып өтүүгө болобу? Албетте, эң ишенимдүү жол - бул toFixed(n) ыкмасын колдонуу менен жыйынтыкты тегеректөө :
@A@let sum = 0.1 + 0.2;
alert( sum.toFixed(2) ); // 0.30@A@
Метод toFixed
ар дайым сапты кайтарарын унутпаңыз. Бул натыйжа ондук бөлүктөгү цифралардын саны менен болорун кепилдейт. Бул онлайн дүкөндө бааларды форматтоо үчүн да ыңгайлуу $0.30
. Башка учурларда +
, сапты санга айландыруу үчүн унардык операторду колдоно аласыз:
@A@let sum = 0.1 + 0.2;
alert( +sum.toFixed(2) ); // 0.3@A@
Ошондой эле, сиз аны бүтүн санга азайтуу үчүн, аны убактылуу 100гө (же андан көпкө) көбөйтүп, математиканы аткарып, анан кайра бөлсөңүз болот. Бүтүн сандарды кошуу менен биз катаны азайтабыз, бирок ал дагы эле акыркы бөлүмдө көрүнөт:
@A@alert( (0.1 * 10 + 0.2 * 10) / 10 ); // 0.3
alert( (0.28 * 100 + 0.14 * 100) / 100); // 0.4200000000000001@A@
Ошентип, көбөйтүү/бөлүү ыкмасы катаны азайтат, бирок аны толук чечпейт.
Кээде фракциялардан толугу менен баш тартууга аракет кылсаңыз болот. Мисалы, биздин интернет дүкөндө доллардын ордуна центти колдоно баштасак. Бирок 30% арзандатууну колдонсок эмне болот? Иш жүзүндө фракциядан толук кутула албайбыз. Керек болгондо куйруктарды кесүү үчүн жөн гана тегеректөө колдонуңуз.
Аны аткарууга аракет кылыңыз:
@A@// Привет! Я – число, растущее само по себе!
alert( 9999999999999999 ); // покажет 10000000000000000@A@
Себеби бир эле - тактыгын жоготуу. Санга бөлүнгөн 64 биттин ичинен цифралар 52 битке чейин ээлейт, калган 11 бит ондук чекиттин ордун сактайт жана бир бит белги болуп саналат. Демек, сандар үчүн 52 бит жетишсиз болсо, анда төмөнкү сандар жазуу учурунда жок болот.
Котормочу ката кетирбейт, бирок натыйжада биз жогорудагы мисалдан көрүп турган "бир эле сан эмес" болот. Алар айткандай: «колумдан келишинче жаздым».
Сандардын ички чагылдырылышынын дагы бир күлкүлүү натыйжасы эки нөлдүн болушу: 0
жана -0
.
Себеби, белги бир бит менен берилген, ошондуктан каалаган сан оң же терс, анын ичинде нөл болушу мүмкүн.
Көпчүлүк учурларда, бул жүрүм-турум көрүнбөйт, анткени JavaScriptдеги операторлор аларга бирдей мамиле кылышат.
Текшерүүдө: isFinite жана isNaN
Ошол өзгөчө сандык баалуулуктарды эстейсизби?
Infinity
(жана-Infinity
) – бул математикалык чексиздик ∞ сыяктуу кыймылдаган өзгөчө сандык маани.NaN
катаны билдирет.
Бул сандык маанилердин түрү бар number
, бирок алар "жөнөкөй" сандар эмес, ошондуктан аларды текшерүү үчүн функциялар бар:
-
isNaN(value)
маанини санга которот жана анын бар-жогун текшеретNaN
:@A@alert( isNaN(NaN) ); // true alert( isNaN("str") ); // true@A@
Бизге бул өзгөчөлүк керекпи? Салыштыра албайбызбы
=== NaN
? Тилекке каршы жок. БаалуулукNaN
уникалдуу болуп саналат, анткени ал башка эч нерсеге, атүгүл өзүнө тең эмес:@Aalert( NaN === NaN ); // false@A@
-
isFinite(value)
аргументти санга айлантат жанаtrue
ал кадимки сан болсо кайтарат, б.а. эмесNaN/Infinity/-Infinity
:@A@alert( isFinite("15") ); // true alert( isFinite("str") ); // false, потому что специальное значение: NaN alert( isFinite(Infinity) ); // false, потому что специальное значение:@A@ Infinity
Кээде isFinite
сапта сан бар-жогун текшерүү үчүн колдонулат:
@A@let num = +prompt("Enter a number", '');
// вернёт true всегда, кроме ситуаций, когда аргумент - Infinity/-Infinity или не число
alert( isFinite(num) );@A@
Эсиңизде болсун, бош сап 0
бардык сандык функцияларда, анын ичинде isFinite
.
Number.isNaN
ЖанаNumber.isFinite
Number.isNaN жана Number.isFinite ыкмалары isNaN
жана функцияларынын катаал версиялары isFinite
. Алар аргументти санга айландырышпайт, тескерисинче - алар адегенде аргументтин сан экенин текшеришет (түргө тиешелүүбү number
).
-
Number.isNaN(value)
true
аргумент типте болсоnumber
гана кайтаратNaN
. Бардык башка учурларда, ал кайтып келетfalse
.@A@alert( Number.isNaN(NaN) ); // true alert( Number.isNaN("str" / 2) ); // true // Обратите внимание на разный результат: alert( Number.isNaN("str") ); // false, так как "str" является строкой, а не числом alert( isNaN("str") ); // true, так как isNaN сначала преобразует строку "str" в число и в результате преобразования получает NaN@A@
-
Number.isFinite(value)
true
аргумент типте болсоnumber
жана андай эмес болсо гана кайтаратNaN/Infinity/-Infinity
. Бардык башка учурларда, ал кайтып келетfalse
.@A@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, так как isFinite сначала преобразует строку "123" в число 123@A@
Функциялардын Number.isNaN
көбүрөөк "туура" версияларын карабашыңыз керек жана . Бул ар кандай тапшырмалар үчүн кошумча куралдар.Number.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
.
Салыштыруунун бул жолу көбүнчө JavaScript спецификациясында колдонулат. Ички алгоритм так дал келүү үчүн 2 маанини салыштыруу керек болгондо, ал Object.is
(Define SameValue ) колдонот.
parseInt жана parseFloat
+
Сиз же колдонсоңуз болот Number()
. Эгерде сап так сан болбосо, анда натыйжа болот NaN
:
@A@alert( +"100px" ); // NaN@A@
Жалгыз саптын башында жана аягында боштуктар, алар этибарга алынбайт.
Чыныгы жашоодо биз көп учурда өлчөө бирдиги бар баалуулуктарга туш болобуз, мисалы, "100px"
же "12pt"
CSS. Ошондой эле, көптөгөн өлкөлөрдө акча белгиси номиналдан кийин жазылат "19€"
. Андай саптардан кантип сандык маани алабыз?
parseInt
Бул үчүн, ошондой эле бар parseFloat
.
Алар бир катардан санды "окушат". Окуу учурунда ката кетсе, катага чейин алынган номерди кайтарышат. Функция parseInt
бүтүн санды кайтарат, бирок parseFloat
калкыма чекит санын кайтарат:
@A@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
@A@alert( parseInt('a123') ); // NaN, на первом символе происходит остановка чтения@A@
parseInt(str, radix)
Функциянын parseInt()
кошумча экинчи параметри бар. Ал санауу системасын аныктайт, ошондуктан parseInt
ал он алтылык сандар, экилик сандар ж.б. бар саптарды окуй алат:
@A@alert( parseInt('0xff', 16) ); // 255
alert( parseInt('ff', 16) ); // 255, без 0x тоже работает
alert( parseInt('2n9c', 36) ); // 123456@A@
Башка математикалык функциялар
JavaScript ар кандай математикалык функцияларды жана константаларды камтыган орнотулган Math объектисине ээ.
Бир нече мисал:
Math.random()
0 (кошкондо) жана 1 (бирок 1ди кошпогондо) ортосундагы псевдококустук санды кайтарат
@A@alert( Math.random() ); // 0.1234567894322
alert( Math.random() ); // 0.5435252343232
alert( Math.random() ); // ... (любое количество псевдослучайных чисел)
Math.max(a, b, c...)
/Math.min(a, b, c...)@A@
Берилген аргументтердин эң чоң/эң аз санын кайтарат.
@A@alert( Math.max(3, 5, -10, 0, 1) ); // 5
alert( Math.min(1, 2) ); // 1
Math.pow(n, power)@A@
Көтөрүлгөн санды n
күчкө кайтаратpower
@A@alert( Math.pow(2, 10) ); // 2 в степени 10 = 1024@A@
Объекттин көптөгөн функциялары жана константалары бар, анын ичинде тригонометриялык функциялар, көбүрөөк маалымат алуу үчүн MathMath
объектисинин документтерин караңыз .
Бардыгы
Көп нөлү бар сандарды жазуу үчүн:
- Сандардын кыска формасын колдонуңуз,
"e"
нөлдөрдүн көрсөтүлгөн саны менен. Мисалы:123e6
бул123
6 нөл менен123000000
. - Терс сандан кийинки
"e"
сан нөлдөрдүн көрсөтүлгөн саны менен 1ге бөлүнөт. Мисалы:123e-6
бул0.000123
(123
миллиондуктар).
Башка сан системалары үчүн:
0x
Сиз бир эле учурда он алтылык ( ), сегиздик (0o
) жана экилик (0b
) системаларында сандарды жаза аласызparseInt(str, base)
белгиленген сан системасына ылайык сапты бүтүн санга айлантат:2 ≤ base ≤ 36
.num.toString(base)
көрсөтүлгөн сан системасында сап катары санды билдиретbase
.
NaN
жана текшерүү үчүн Infinity
:
isNaN(value)
аргументти санга айлантат жана анын бар-жоктугун текшеретNaN
Number.isNaN(value)
аргументтин сан экенин текшерет, эгер ошондой болсо, анын бар-жогун текшеретNaN
isFinite(value)
аргументти санга которот жана ал эмес экенин текшеретNaN/Infinity/-Infinity
Number.isFinite(value)
аргументтин сан экендигин текшерет, эгер андай болсо, ал эмес экенин текшеретNaN/Infinity/-Infinity
Типтин 12pt
жана 100px
сандын маанилерин айландыруу үчүн:
- Сапты санга "жумшак" айландыруу үчүн колдонуңуз
parseInt/parseFloat
, бул функциялар ката пайда болгонго чейин катардан санды окуйт.
Бөлчөктөр үчүн:
- Тегеректөө
Math.floor
,Math.ceil
,Math.trunc
,Math.round
же колдонуңузnum.toFixed(precision)
. - Бөлчөктөр менен иштөөдө тактык жоголот экенин унутпаңыз.
Көбүрөөк математикалык функциялар:
- Математика объектиси үчүн документация . Китепкана кичинекей, бирок эң маанилүү нерселердин бардыгын камтыйт.
Tasks
Эки санды сураган скрипт түзүңүз (кошумчаны колдонуңуз), андан кийин алардын суммасын көрсөтөт.
PS Түрлөр менен иштөөдө "тузак" бар.
Math.round
жана ыкмалары toFixed
, документацияга ылайык, жакынкы бүтүн санга тегеректөө: 0..4
тегеректелген ылдый, ал эми 5..9
өйдө.
Мисалы:
@A@alert( 1.35.toFixed(1) ); // 1.4@A@
Бирок эмне үчүн төмөндөгү мисалда 6,35 6,3кө чейин тегеректелет?
@A@alert( 6.35.toFixed(1) ); // 6.3@A@
Кантип туура тегеректөө керек 6.35
?
readNumber
Келүүчү киргенге чейин сандык маанини сурай турган функция түзүңүз .
Функция сандык маанини кайтарышы керек.
Ошондой эле колдонуучуга бош сапты жөнөтүү же Жокко чыгарууну чыкылдатуу менен киргизүү процессин токтотууга уруксат беришиңиз керек. Бул учурда, функция кайтып келиши керек null
.
Бул цикл чексиз. Эч качан бүтпөйт, эмне үчүн?
@A@let i = 0;
while (i != 10) {
i += 0.2;
}@A@
Камтылган ыкма Math.random()
кокустук санды 0
(кошкондон) чейин кайтарат 1
(бирок 1
)
чейин (бирок камтылган эмес ) random(min, max)
кокустук калкыма чекиттин санын түзгөн функцияны жазыңыз .min
max
max
Функциянын иштешинин мисалы:
@A@alert( random(1, 5) ); // 1.2345623452
alert( random(1, 5) ); // 3.7894332423
alert( random(1, 5) ); // 4.3435234525@A@
чейин ( кошкондо ) кокус бүтүн сандыrandomInteger(min, max)
түзүүчү функцияны жазыңыз .min
max
Интервалдагы каалаган сан min..max
бирдей ыктымалдуулук менен пайда болушу керек.
Функциянын иштешинин мисалы:
@A@alert( randomInteger(1, 5) ); // 1
alert( randomInteger(1, 5) ); // 3
alert( randomInteger(1, 5) ); // 5@A@
Сиз мурунку маселенин чечүү жолун колдоно аласыз .