A számítások eredménye gyakran sok tizedesjegyet tartalmazó szám. Ha ezt a számot használjuk a további számításokhoz, akkor ebben a formában hagyhatjuk. De néha kerekíteni kell a számot, például az oldalon való megjelenítéshez. Számos módszer létezik a számok kerekítésére a JavaScriptben.
A Math.round() metódus egész számra kerekíti az értéket.
Matek forduló (szám)
A szám matematikai szabályok szerint kerekítve van. Vagyis ha a tizedesvessző után egy 0 és 4 közötti szám van, akkor a tört részt egyszerűen eldobjuk. És ha a tizedesvessző után egy 5-től 9-ig terjedő szám van, akkor a tört részt eldobjuk, és egyet hozzáadunk az egész részhez. példa:
JavaScript:
Van még két módszer, amely egy számot egész értékre kerekít. A Math.floor() metódus lefelé kerekít. Elveti a szám tört részét. És a Math.ceil() metódus felfelé kerekít. Eldobja a tört részt, és hozzáad egyet az egész részhez. Példa:
Természetesen az 5 - (-2) az 5+2. Ne felejtse el, hogy ebben a képletben nem kapja meg az 5-ös számot. A maximális összeg 4,999999999. A kapott értékek a kívánt pontosságra kerekíthetők.
Ha csak egész számokra van szükség, akkor a kapott értékeket lefelé lehet kerekíteni a legközelebbi egész számra. Egyet hozzá kell adni a maximumhoz, hogy ez a maximum is lehetséges legyen. A képlet így néz ki:
egész = Math.floor (min + Math.random() * (max + 1 - perc)
Adjunk ki számokat 10-től 15-ig:
20 |
for (i=1; i= (nagyobb vagy egyenlő), 3); //false console.log(5>=3); //igaz A számok törtrésszel való összehasonlításakor figyelembe kell venni a számítások során előforduló hibákat. Például a JavaScriptben a számok összege (0,2 + 0,4) nem egyenlő 0,6-tal: Console.log((0,2+0,4)==0,6); //hamis Hibák azért fordulnak elő, mert minden számítás számítógépes vagy egyéb elektronikai eszköz 2 számrendszerben termel. Azok. Mielőtt bármilyen műveletet végrehajtana, a számítógépnek először át kell alakítania a kifejezésben szereplő számokat 2-es számrendszerré. De a 2. számrendszerben egyetlen tört decimális szám sem ábrázolható pontosan. Például a 0,25 10 számot pontosan binárissá alakítjuk. 0,125 × 2 = 0,25 | 0 0,25 × 2 = 0,5 | 0 0,5 × 2 = 1 | 1 0,125 10 = 0,001 2 Például a 0,2 10 szám csak bizonyos pontossággal konvertálható 2-es rendszerré: 0,2 × 2 = 0,4 | 0 0,4 × 2 = 0,8 | 0 0,8 × 2 = 1,6 | 1 0,6 × 2 = 1,2 | 1 0,2 × 2 = 0,4 | 0 0,4 × 2 = 0,8 | 0 0,8 × 2 = 1,6 | 1 0,6 × 2 = 1,2 | 1 0,2 × 2 = 0,4 | 0 0,4 × 2 = 0,8 | 0 0,8 × 2 = 1,6 | 1 0,6 × 2 = 1,2 | 1 ... 0,2 10 = 0,001100110011... 2 Ennek eredményeként ezek a hibák befolyásolják két szám összegének kiszámítását és az összehasonlítási eredményeket. Azok. kiderül, hogy a JavaScript a következőképpen fogja látni ezt a bejegyzést: 0.6000000000000001==0.6 Törtrészes számok kiszámításakor vagy megjelenítésekor mindig meg kell adni, hogy ezt milyen pontossággal kell elvégezni. Hasonlítsa össze például a számokat 2 tizedesjegyig a toFixed() és toPrecision() metódusokkal: //method toFixed() console.log((0.2+0.4).toFixed(2)==(0.6).toFixed(2)); //true //toPrecision() metódus console.log((0.2+0.4).toPrecision(2)==(0.6).toPrecision(2)); //igaz Alapvető matematikai műveletekA JavaScript a következő matematikai operátorokkal rendelkezik: + (összeadás), - (kivonás), * (szorzás), / (osztás), % (osztás maradéka), ++ (érték növelése 1-gyel), -- (érték csökkentése 1-gyel) ). 6+3 //9 6-3 //3 6*3 //18 6/3 //2 6%3 //0, azaz 6:3=2 => 6-3*2 => rest(0) 5%2 //1, azaz. 5:2=2(.5) => 5-2*2 => pihenés(1) 7,3%2 //1,3, azaz. 7,3:2=3(,65) => 7,3-2*3 => rest(1,3) //a művelet eredményének % előjele megegyezik az első érték előjelével -9%2,5 //-1,5, azaz. 9:2,5=3(,6) => 9-2,5*3 => pihenés(1,5) -9%-2,5 //-1,5, azaz. 9:2,5=3(,6) => 9-2,5*3 => pihenés(1,5) -2%5 //-2, azaz. 2:5=0(.4) => 2-5*0 => pihenés(2) x = 3; konzolnapló(x++); //3-at jelenít meg, majd y-t 4-re állítja console.log(x); //4 x = 3; konzolnapló(++x); //4-et állít be, és x = 5-öt ad ki; konzolnapló(x--); //5-öt ad ki, y ezután 4-et állít be console.log(x); //4 x = 5; konzolnapló(--x); //4-re állítja be, és a kimenetek Ezen kívül vannak kombinált operátorok a JavaScriptben: x+=y (x=x+y), x-=y (x=x-y), x*=y (x=x*y), x/= y (x=x/y), x%=y (x=x%y). x=3; y=6; x+=y; konzolnapló(x); //9 x = 3; y=6; x-=y; konzolnapló(x); //-3 x = 3; y=6; x*=y; konzolnapló(x); //18 x = 3; y=6; x/=y; konzolnapló(x); //0,5 x = 3; y=6; x%=y; konzolnapló(x); //3 Most fontolja meg a padló módszerét (fordításban - nem), amely a ceil módszer ellentétében működik, azaz. a törtszámot LE kerekíti.
var kor = 35,97 ; kor = Math.floor(age) ; /* Az életkor változó értékének lefelé kerekítése */ dokumentum.ír(életkor);
Mint látható, a padló módszer a 35,97-et 35-re kerekítette. Annak ellenére, hogy 0,97 nagyobb, mint 0,5 (cm.). Ez a lecke a Math objektum módszereit vizsgálta, amelyek lehetővé teszik a tört decimális számok kerekítését. Most meg kell csinálni a házi feladatot. Az Ön feladata, hogy írjon egy függvényt, amely két paramétert vesz fel. A kimenetnél a függvénynek ugyanazt a tömböt kell kiadnia, ugyanakkor a tömb minden elemét kerekíteni kell a második paraméterben megadott Math objektum metódusával. Forrástömb: varnumberArray = ; E feladat megoldása elsőre szinte azonosnak tűnhet az első három óra házi feladatainak megoldásaival. ez a téma. De nem minden olyan egyszerű... 1. döntés – Figyelem A probléma feltételétől függően a függvénynek két paramétert kell felvennie - az eredeti tömböt és a módszerek egyikét: "round" , "ceil" vagy "floor" . Ez alapján próbáltam ezt megtenni...
függvény decimális (anyArray ,method ) /* Hozzon létre egy függvényt két paraméterrel */ for (i = 0 ; i< anyArray .length ; i ++ ) { anyArray = Math.method(anyArray); /* Használja a Math objektum egyik módszerét a tömb aktuális elemének kerekítéséhez */ document.write(anyArray + " "
) decimális (numberArray, round ) /* Hívja meg a függvényt és adjon meg két paramétert. De NE adjon meg metódusnevet függvényparaméterként */
Ebben a megoldásban egy két paraméterrel rendelkező függvényt hozunk létre, melynek meghívásakor megpróbáljuk a függvény paramétereiként megadni az eredeti tömböt és az egyik metódus NAME-ját: De az eredményt nem kapjuk meg, mivel LEHETETLEN a metódus NAME-ját függvényparaméterként megadni. Figyelem: nem véletlenül szerepel idézőjelek között a "round" , "ceil" és "floor" metódusok neve a problémafelvetésben. decimális (numberArray, "round" ) - de az ilyen jelölés sem lesz helyes!!! 2. megoldás – Az előző megoldás javítása A probléma egy paraméter megadásával megoldható.
varnumberArray = ; függvény decimális (anyArray ) /* Hozzon létre egy függvényt egy paraméterrel */ for (i = 0 ; i< anyArray .length ; i ++ ) /* Перебираем элементы массива */ { /* Használja a Math objektum kerek módszerét a tömb aktuális elemének kerekítéséhez */ document.write (anyArray + " - Lekerekített elem " ) /* A tömb ROUNDED elemének megjelenítése */ decimális (numberArray ) /* Hívja meg a függvényt és adjon meg egy paramétert - az eredeti tömböt */
Itt sikerült elérnünk a kívánt eredményt: a kerek módszerrel minden számot kerekítettek. De a feltétel nem teljesül, mert a függvény csak egy paramétert vesz fel. 3. megoldás – Két paraméteres funkció Itt a probléma helyesen megoldódott. Ehhez emlékezni kellett tantárgyi feltételek javascriptbenés jelentkezz több feltétel egyidejűleg.
varnumberArray = ; függvény decimális (anyArray ,method ) ha (módszer "
) Else if(módszer "
) else if(módszer "
) }
34,82 - eredeti tömbelem 12.9 - eredeti tömbelem 17.01 - a tömb eredeti eleme 78.51 - eredeti tömbelem Ez a helyes megoldás a házi feladathoz. Itt két paraméter van megadva a függvényhez a feltételnek megfelelően. Próbálja ki a megoldás utolsó sorában: 4. megoldás - Funkció két paraméterrel + prompt módszer Úgy döntöttem, hogy egy kicsit optimalizálom az előző megoldást, és hozzátettem prompt módszer, amely hívja modális ablak A, amely egy adatbeviteli mezőt tartalmaz. Most ennek köszönhetően a beviteli mezőbe beírhatja az egyik kerek , padló vagy mennyezet módszer nevét, és megkaphatja a megfelelő eredményt.
varnumberArray = ; függvény decimális (anyArray ,method ) if (módszer == "kerek" ) /* 1. feltétel */ "
) Else if(method == "ceil" ) /* 2. feltétel */ "
) else if(method == "floor" ) /* 3. feltétel */ "
) /* Prompt metódus hozzáadása */ var method = prompt("Adja meg a metódusok egyikét: round, ceil or floor" ); if (method == "floor" ) /* 1. feltétel */ "
) else if (method == "kerek" ) /* 2. feltétel */ "
) else if (method == "ceil" ) /* 3. feltétel */ "
) más /* Más... */ "
) decimális (numberArray, metódus ) /* A függvény meghívása */
Így működnek a Math objektum round , floor vagy ceil metódusai, amelyek törtszámokat kerekítenek. Tematikus anyagok:
Frissítve: 2021.04.20
103583
Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
Webhelykategóriák |