Kurs Mootools 1.2 (part 2) – liczby
styczeń 5th, 2010
Witam w kolejnej odsłonie kursu Mootools. Dzisiaj zajmę się funkcjami jakie proponuje nam framework do operowania na liczbach. Tradycyjnie wybiorę tylko te ciekawsze (moim subiektywnym zdaniem).
Na początek funkcja toInt(), oczywista oczywistość, zamienia string/liczbę na liczbę całkowitą, dodatkowo można podać w argumencie z jakiego systemu ma przeliczyć. Jeśli podamy w argumencie 2 to funkcja spodziewa się systemu dwójkowego, a więc poprawne wartości to np. 11, 101. Funkcja zachowuje się podobnie do php’owego odpowiednika, czyli jeśli trafi na znaki nie pasujące do wytycznych to obcina wyrażenie w tym miejscu, przykłady zobrazują to lepiej:
(123.321).toInt(); // 123 (101).toInt(2); // 5 - system dwójkowy ('123ABC456').toInt(); // 123 - obcina niepasującą część (1122).toInt(2); // 3 - tutaj niepasująca część zaczyna się na 2, gdyż w systemie dwójkowym dozwolone są tylko 1 i 0 ('b123').toInt(); // NaN (211).toInt(2); // NaN |
Funkcja toFloat() zachowuje się podobnie, z tym, że zamienia na liczbę zmiennoprzecinkową i nie przyjmuje żadnych argumentów, więc operuje tylko na systemie dziesiętnym.
Przydatne mogą się okazać funkcje limit(min, max) i round([precision]). Pierwsza z nich zwraca niezmienioną liczbę, jeśli ta łapie się w zakresie podanym w argumentach lub odpowiednio wartość minimalną (pierwszy argument) – liczba mniejsza, wartość maksymalną (drugi argument) – liczba większa niż zadany zakres. Druga funkcja zaokrągla liczbę z określoną w parametrze precyzją. Należy pamiętać, że obie funkcje operują tylko na liczbach, więc jeśli pobieracie wartości np. z pola input to najpierw trzeba wykonać rzutowanie na int lub float. Przykłady:
(5).limit(1,10); // 5 (11).limit(1,10); // 10 (-3).limit(1,10); // 1 (33.14).round(); // 33 (33.14).round(1); // 33.1 (33.15).round(1); // 33.2 (33.14).round(-1); // 30 (35.14).round(-1); // 40 |
To by było na tyle, w kolejnej części kursu zajmę się tablicami.
Kategoria: javascript
Napisz komentarz
Dozwolone tagi HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Nawiąż do wpisu | śledź komentarze przez RSS