Převod čísla JavaScriptu čísla v řetězci. JavaScript: Konverze datového typu

JavaScript je nevědomý jazyk (přesněji, slabě psaný nebo dynamicky napsaný). To znamená, že bychom nebyli specifikovat typ proměnné při deklarování. Ineposis poskytuje flexibilitu a jednoduchost JavaScriptu, preferuje pro skriptovací jazyk (i když tyto funkce získají cenu nedostatku přísnosti, důležité pro dlouhé a složitější programy, které jsou často napsány na přísnějších jazycích, jako je C nebo Java). Důležitým rysem flexibilní práce s datovými typy v JavaScriptu je automatické transformace dat prováděných interpretem. Pokud je například vysílána metoda dokument.write (), JavaScript jej automaticky převádí na ekvivalentní reprezentaci řetězce. Stejně tak, kontrola hodnoty řetězce v podmínce IF, pokud je javascript automaticky převede tento řetězec na logickou hodnotu - v false, pokud je řetězec prázdný, a v true jinak.

Hlavním pravidlem je, že když se hodnota jednoho typu dojde v kontextu, kde je požadována hodnota některého jiného typu, JavaScript se automaticky pokusí převést hodnotu požadovaným způsobem. Proto, například v kontextu, který předpokládá logickou proměnnou, je číslo převedeno na logickou hodnotu.

Objekt v kontextu řetězce je převeden na řetězec. Montáž v číselném kontextu JavaScriptu se snaží převést na číslo.

Konverze "Objekt elementární typ"
Například v logickém kontextu jsou všechny níže uvedené objekty převedeny na hodnotu TRUE:

Nový Boolean (false) // interní hodnota se rovná false, ale objekt
// převedeno na true
Nové číslo (0)
Nový řetězec (")
New Array ()

Transformace objektů v čísle začíná voláním metody hodnota () tohoto objektu. Většina objektů dědí standardní metoda CololiOf () Class Object, který jednoduše vrátí objekt sám. Vzhledem k tomu, že metoda Standardní hodnota () nevrátí základní hodnotu, JavaScript se pak pokusí převést objekt na číslo voláním metody toststruing () a převést výsledný řetězec. Pro pole vede k zajímavým výsledkům. Připomeňme si, že metoda TOSSTRING () převádí prvky pole do řetězce, a pak vrací výsledek zřetězení těchto řad s čárkami mezi nimi. V důsledku toho je pole bez prvků převedeno na prázdný řetězec, který je převeden na 0! Kromě toho, pokud pole se skládá z jednoho prvku, číslo n, pole je převedeno na sestavu řetězce tohoto čísla, který je pak převeden zpět na číslo N.

Pokud pole obsahuje více než jeden prvek, nebo pokud jeho jediný prvek není číslo, pole je převedeno na NAN. V JavaScriptu není kontext vždy jednoznačně určit! Operátor + a srovnávací operátoři (a\u003e \u003d) Pracují jak s čísly, tak řetězce, takže když je objekt používán s jedním z těchto operátorů, je nejasné, co musí být transformováno na číslo nebo v řetězci. Ve většině případů se JavaScript nejprve pokusí převést objekt voláním metody hodnota (). Pokud tato metoda vrátí základní hodnotu (obvykle číslo), tato hodnota se používá. Nicméně, často hodnota () jednoduše vrátí objekt bez konverze; V tomto případě se JavaScript se pak pokusí převést objekt na řetězec pomocí volání metody TOSSTRING (). Existuje pouze jedna výjimka z tohoto pravidla konverze: Pokud je objekt datu používán s operátorem +, konverze se provádí pomocí metody TOSSTRING (). Existence této výjimky je způsobena skutečností, že datum má jak metodu tosstru () a metoda hodnota (). Při použití data s operátorem + téměř vždy vyžaduje zřetězení řetězce. Ale když se datum podílí na srovnávacích operací, je téměř vždy nutné provést numerické srovnání s cílem určit, který z těchto dvou bodů předchází jiný.

Většina objektů nebo nemá metodu hodnota () nebo tato metoda nevrátí užitečné výsledky.

Když je operátor + použit pro objekt, zřetězení řetězce obvykle probíhá a nikoli navíc. Když je srovnávací operátor aplikován na objekt, obvykle se provádí srovnání řetězce, nikoli numerický.

Objekt Definování speciální metoda Cololiof () se může chovat odlišně. Definováním metody ValueOf (), vracet číslo, můžete použít aritmetické a další příkazy k vašemu objektu, ale přidání vašeho objektu bude provedeno ne podle očekávání: metoda tosstrany () není již nazývána a sestavování řetězce Číslo vrácené metodou se podílí na zřetězně hodnotu ().

Nakonec si pamatujte, že metoda hodnota () není nazývána tóně (), přísně řečeno, jeho úkolem je převést objekt do smysluplné základní hodnoty, takže některé objekty mohou mít metody cololiof (), které vrátí řádky.

Explicitní typy konverze
Java-Script nedefinuje transformační operátor jako jazyky C, C ++ a Java, ale poskytuje podobné prostředky. V JavaScriptu 1.1 (a v ECMA-262) čísla (), Boolean (), řetězec () a objekt () mohou být nazývány nejen jako návrháři, ale také jako funkce. Být způsoben tímto způsobem, tyto funkce se snaží převést jejich
Argumenty v příslušném typu. Můžete například převést libovolnou hodnotu X s řetězcem pomocí řetězce (x) a libovolnou hodnotu Y na objekt pomocí objektu (Y).

Existuje několik dalších technik, které mohou být užitečné pro provádění explicitních transformací typu. Chcete-li převést hodnotu na řetězec, proveďte zřetězení s prázdným řetězcem:

Var x_as_string \u003d x + "";

Převést hodnotu na číslo, odečíst nulu z ní:

Var x_as_number \u003d x - 0;

Je možné transformovat libovolnou hodnotu na logickou hodnotu pomocí operátora!, Dvakrát aplikované:

Var x_as_boolean \u003d !! x;

Vzhledem k tendenci JavaScriptu automaticky převést data na požadovanou tento moment Typ, explicitní konverze obvykle nejsou nutné. Příležitostně jsou však užitečné a mohou být použity, aby program jasnější a přesnější.

Transformace čísel v řetězci
Transformace čísel v řetězci se provádí v JavaScriptu, možná častěji než jiní. Ačkoli se obvykle děje automaticky, existuje několik užitečných způsobů, jak tento druh explicitně proměnit. Dva jsme již viděli:

Var string_value \u003d řetězec (číslo); // Použití návrháře řetězce ()
// jako funkce
Var string_value \u003d číslo + ""; // Zřetězení s prázdným řetězcem

Další příležitost poskytuje metodu toosting ():

String_Value \u003d číslo.Tostring ();

Metoda TOSSTRING () metoda číselného objektu (elementární číselné hodnoty jsou převedeny na číselné objekty, takže můžete zavolat tuto metodu) přijímá volitelný argument, který nastavuje základnu číselného systému, ke kterému bude konverze provedena. Pokud argument není zadán, transformace provádí základnou 10. Ale můžete převést čísla s jinými základny (mezi 2 a 36). Například:

Var n \u003d 17;
Binary_string \u003d n.tostring (2); // Stejně "10001"
Octal_string \u003d "0" + n.tostring (8); // Stejně "021"
hex_string \u003d "0x" + n.tostring (16); // Stejně "0x11"

Nedostatek javascript verzí na verzi 1.5 spočívá v nepřítomnosti standardní módaUmožní zadat počet desetinných známek v řádku vyplývajícím z transformace čísla nebo vyžadují použití exponenciálního notace. To může komplikovat zobrazení čísel s tradičními formáty, jako jsou hodnoty peněžních prostředků.

Ecmascript V3 a JavaScript 1.5 obejít tuto překážku přidáním tří nová metoda konverze do řádku do třídy čísla. Metoda shofixed () převádí číslo na řetězec a zobrazí zadaný počet čísel po desetinném místě bez použití exponenciálního notace. Metoda ToExponentialent () Převádí číslo řetězci, nahrávání do exponenciálního zápisu s jedním číslem před desetinnou čárkou a zadaným počtem čísel po něm. Metoda TopRecision () zobrazuje číslo pomocí zadaného počtu významných číslic. Pokud taková řada významných číslic nestačí k výstupu celé části čísla, je zaznamenán v exponenciální notaci. Upozorňujeme, že všechny tři metody správně zaoblené výsledné čáry. Podívejte se na následující příklady:

Var n \u003d 123456.789;
n.tofixed (0); // "123457"
n.tofixed (2); // "123456.79"
N.toexponenční (1); // "1.2e + 5"
N.toexponenční (3); // "1,235e + 5"
N.topreceision (4); // "1,235e + 5"
N.topreceision (7); // "123456.8"

Řádek konverze v číslech
Viděli jsme, že v numerickém kontextu linky reprezentující čísla jsou automaticky transformována do reálných čísel. Jak je uvedeno výše, tato konverze může být explicitně:

Var nite \u003d číslo (string_value);
Var nite \u003d string_value - 0;

Taková transformace je nepohodlná kvůli jeho nadměrnému přísu. Funguje pouze s desetinná číslaA i když konverze umožňuje vedoucí a zavírání mezer, neumožňuje po čísle v řádku žádné neflamované znaky. Pro pružnější transformace můžete použít funkce parseint () a parsefloat (). Tyto funkce jsou transformovány a vráceny libovolným číslem přítomným na začátku řádku, ignorovat všechny uzavírací nečíslné znaky. Funkce funkce PARSEINT () pouze celé číslo a parsefloat () je obě celá čísla a plovoucí bodová čísla. Pokud řetězec začíná "0x" nebo "0x", parseint () interpretuje jej jako hexadecimální číslo. Například:

Parseign ("3 slepé myši"); // vrátí 3.
Parsefloat ("3,14 m); // vrátí 3.14.
Parseint ("12.34"); // vrátí 12.
Parseign ("0xFF"); // vrátí 255.

Funkce Parseint () může mít druhý argument označující základ počtu zpracovaného čísla. Platné hodnoty - od 2 do 36. Například:

Parseint ("11", 2); // vrátí 3 (1 * 2 + 1)
Parseint ("ff", 16); // vrátí 255 (15 * 16 + 15)
Parseign ("ZZ", 36); // Vrácení 1295 (35 * 36 + 35)
Parseint ("077", 8); // Vrácení 63 (7 * 8 + 7)
Parseint ("077", 10); // vrátí 77 (7 * 10 + 7)

Pokud PARSEINT () a PARSEFTOT () nemohou převést zadaný řetězec na číslo, vrátí se NAN.

Parseint ("jedenáct"); // vrátí nan.
Parsefloat ("$ 72.47"); // vrátí nan.

Není rozdíl v tom, jaký typ proměnné se používá v expresi. Pokud je výraz matematický, všechny jeho proměnné budou automaticky interpretovány jako numerické. Pokud jsou řádky zpracovány, pak jsou všechny "účastníky" výrazy považovány za řádky. Úloha konverze na JavaScript "řádek na číslo" však existuje v mnohem širším kontextu.

JavaScript Metody řádků konverzí v číslech

Metody arzenálu pro konverzi řetězců v číslech nejsou velké, ale dostatečné ve všech jednoduchých případech. Zde JavaScript (zejména pro začátečníky) je cesta od jednoduchých až po komplexní v praktických příkladech.

Příklad popisuje čtyři různé řádky. V prvním bloku výstupního typu proměnná funkce Typeof je definován jako řetězec. Pak je každý řádek velmi prostě převeden na číslo. Ve druhém výstupním bloku se viditelné změny proměnných po transformaci, jejich typ se stal číslem. Příklad konverze PARASEEFLOKU JavaScriptu je zvláště orientační: to bylo "12e + 3", stalo se "12000".

Změny při převodu řetězce na číslo může být významné! Jsou však důležité pouze první znaky: měli by být digitální. Pokud není jediný digitální symbol, výsledek bude NAN.

Reverzní transformace řetězce "se stala" podle čísla není vždy stejný řetězec. Tento okamžik lze použít k ověření správnosti zadávání číselných informací.

Konvenční transformační metody

Existují celá čísla a existuje frakční, resp. JavaScript řádek na číslo převádí:

  • parseint;
  • parsefloat.

Obecný případ je implementován pomocí řetězce jednoduchým matematickým výrazem.

Stačí předložit před řetězec symbolů "+" a pokud je v něm číslo, výsledek výrazu bude číslo. Hodnota proměnné se může změnit, ale typ bude vždy změnit: Typeof zobrazí číslo, nikoli řetězec. Je důležité pochopit, že použití transformované proměnné v linii výrazu může ukázat zcela jiný výsledek.

Javascript pro začátečníky v tomto kontextu je velmi jednoduchý. Je obtížnější pochopit práci celočíselné konverze metodou Pasrseint, protože funguje ve stroji desetinný systém Číslo, ale může interpretovat řetězec jako osmičku nebo hexadecimální. V tomto případě tato okolnost ne vždy závisí na druhém parametru, který označuje číslo čísel.

JavaScript řádek na číslo se vždy otočí, ale pokud není v řádku žádný digitální symbol v řádku na začátku řádku, pak výsledek bude NAN.

Je nutné mít představy o číselných systémech, o metodách záznamu hexadecimální (počet začíná "0x") a osmičková čísla (počet začíná "0").

Chcete-li pochopit nuance metody JavaScriptu Parsefloat, stačí mít představu o tom, jaký matematický záznam je skutečným číslem.

Konverze

JavaScript je jazyk prohlížeče, protože je to další další jazyky kritické symboly mimo hlavní sadu latinské abecedy a čísel. Seřadit - přežil provoz. Není však vždy smysl posílat data na server pro účely třídění, jednodušší a praktičtější pracovat na místě v prohlížeči.

Chcete-li takový úkol vyřešit, můžete převést symboly řetězce do jejich číselných kódů nebo přiřadit objednané pořadí čísel v jejich číselných kódech nebo číslici a číslici. Metoda CharCodeat () aplikovaná na řetězec přiřadí číselnou hodnotu 98 proměnné IB, to znamená, že písmeno "B". Vzhledem k tomu, že hodnota kódu dopisu "A" je 97, můžete získat čísla všech písmen latinské abecedy ve vzestupném pořadí na řádcích a velkých sadách. Podobné písmenům ruské abecedy.

Vlastní varianta třídění přes čísla umožňuje vytvářet požadované sady znaků. Je možné například "zachytit" cyrilice a latiny a míchat je, aby se ponechal pouze vynikající psaní písmen, přidejte do sad záložek a mezer.

Tvorba jedinečného počtu řetězců

Pokud je písmeno kód "A" 97, pak rozdíl mezi písmenem a číslem 97 poskytne jedinečný počet písmen v abecedě. Shrnutí jedinečných čísel pro každý symbol řádku je obtížné získat jedinečné číslo tohoto řetězce.

Pokud každá poloha písmene v řetězci je přiřazena hmotnost, například pozice:

  • 0 hmotnost 1;
  • 1 hmotnost 10;
  • 2 hmotnost 100;

vynásobí jedinečné číslo každého znaku řetězce na hmotnost polohy, ve které je detekován, a sčítáním všech čísel můžete získat jedinečné číslo a používat ji jako jednoznačnou korespondenci v původním řádku.

Taková konverze řádku je reverzibilní, tj. Číslem, který můžete vždy dostat zdrojový řádek. Taková transformace je prospěšná, protože s číslem můžete bezpečně provádět jakoukoliv operaci v kontextu kódování, cyrilice a dalších místních funkcí stránky stránky, oblasti aplikace, zemí návštěvníků.

Selectory "Pěstování"

Často se vyskytuje úkol vytváření selektorů na stránkách webu, jejichž hodnoty nelze zadat předem, ale v průběhu času jsou doplněny. V první aplikaci je k prvnímu návštěvníkovi k dispozici prázdný volič pro zadání informací.

Každý nový vstup informačních linek ve voliči (jakýmkoliv návštěvníkem) je transformován do čísla, které jsou spolu s originálem odeslána na úložný server. Když začíná nová pracovní relace nebo přijde nový návštěvník, volič již není prázdný. Stránka ke stažení přichází do prohlížeče s prázdným voličem.

S každou novou hodnotou voliče, pouze jakmile jde na úložný server a pouze po přiřazení jedinečného digitálního kódu.

Chcete-li tento úkol vyřešit, metoda JavaScript nelze použít k použití řádku. Obvyklá metoda PARSEINT a PARSEFLOAT jsou určeny pro jiné použití, ale můžete přijít s algoritmem pro jednoznačnou konverzi řetězce v čísle a ne nutně reverzibilní. Stačí, že algoritmus konverzní algoritmus nebude opakován v různých sadách znaků v řádku.

Optimalizace provozu a analytika

Při tvorbě stránky, vývojář používá značné množství informací. Poskytnout návštěvníkovi pro zadání informací - dobrá cesta Snížení hodnocení webu díky své slabé funkci a zklamání návštěvníka.

Přiřazení handler události ve formě funkce JavaScriptu na akce návštěvníka pro určité informační bloky, můžete formulovat filtr, který umožní návštěvnímu návštěvník přesně položit cíl, najít nezbytné informace, Získejte požadované řešení.

Transformace malých písmen zde může být v části linie libovolně nemocná a velmi malá v čísle. Jinými slovy, konverze řádku JavaScriptu k počtu vývojářů provádí podle algoritmu. Návštěvník manipuluje srozumitelné informace a server má minimální množství dat - číslo.

Dynamika mnoha čísel na všech návštěvníků v kontextu přesně známých informací umožňuje další funkce JavaScriptu (ne obsluhy), volal odezvou serverem prostřednictvím mechanismu AJAX, okamžitě v reálném čase poskytovat všem návštěvníkům potřebné informace současně. Systém funguje.

Tato volba pro převod JavaScript řádku je velmi v poptávce ve vývoji online her, interaktivních konferencí, přenosu okamžité zprávy atd.

Použití transformací

JavaScript a CSS v kontextu zpracování Číselné informace Umožněte vám řídit zobrazení stránky bez účasti serveru. Pravidla CSS jsou vybudována jako substring, rekurzivně. Obvykle je parametr číslo následované několika písmeny (například "px", "pt", "em", ...). Parametr je subtress v pravidle a pravidlo vstupuje do substroje ve stylu třídy nebo identifikátoru.

Recursion JavaScript.strete. Struktura ... přejde na požadované číslo, převádí z řetězce na číslo, změní ji a zapíše zpět na požadované místo. Pravidlo se mění "Stroj". Je to jednoduché a pohodlné, žádné účasti serveru.

Existují dva hlavní způsoby, jak převést řetězec do JavaScriptu. Jedním ze způsobů je analyzovat, a dalším způsobem - změnit svůj typ na číslo. Všechny triky v jiných odpovědích (například Unary Plus) znamenají implicitní donucování jako řetězec na číslo. Můžete také udělat totéž s funkcí čísla.

Syntaktický

Var an aneted \u003d parseint ("97", 10);

parseign a Parsefloat jsou dva funkce používané pro analýzu řádků na čísla. Analýza syntaxe se zastaví tiše, pokud spadne do symbolu, že neuznává, že může být užitečná pro syntaktickou analýzu řetězců, například "92px", ale je také poněkud nebezpečná, protože to nedává žádnou chybu se špatným Vstup, místo toho "vrátit Nan, pokud řetězec nezačne s číslem. Mezera na začátku řádku je ignorován. Zde je příklad toho, co dělá něco jinak, co potřebujete, a neindikuje, že něco šlo špatně:

Var widgetsssold \u003d parseint ("97,800", 10); // widgetssold je nyní 97

Dobrá praxe vždy označuje jako druhý argument. Ve starých prohlížečích, kdyby řetězec začal 0, by to bylo vykládáno jako osmidál, pokud to nebylo specifikováno hodnotou radix, která přilákala mnoho lidí překvapením. Chování pro spuštění hexadecimálního spuštění, pokud řetězec začíná 0x, pokud hodnota Radix není zadána. 0xff. Standard se ve skutečnosti změnil pomocí ECMAScript 5, takže moderní prohlížeče Pokud je hostitel indikován, již neurčuje, pokud je hodnota Radix není zadána. Parseign chápe radikům na základnu 36 a v tomto případě jsou jak horní i malá písmena zpracována jako ekvivalent.

Změna typu řetězce podle čísla

Všechny ostatní ty triky uvedené výše, které nepoužívají parseint, znamenají implicitní nátlak řetězce na číslo. Dávám přednost jasně

Var cast \u003d číslo ("97");

To se liší od metod analýzy (i když stále ignoruje prostory). Je přísný: pokud nerozumí celé lince než Nan vrátí, takže jej nemůžete použít pro struny typu 97px. Vzhledem k tomu, že potřebujete primitivní číslo, nikoli objekt číslo wrapper, ujistěte se, že nebudete nastavit nový před funkcí čísla.

Samozřejmě, konverze na číslo vám dává hodnotu, která může být vzato, a ne celé číslo, takže pokud chcete celé číslo, musíte ji změnit. Existuje několik způsobů, jak to udělat:

Var zaoblené \u003d math.floor (číslo ("97.654")); // Jiný možnosti jsou Math.ceil, math.round var fixní \u003d číslo ("97.654"). Tofixed (0); // zaoblené spíše než zkrácené var bitwised \u003d číslo ("97.654") | 0; // Nepoužívejte pro velká čísla

Jakýkoliv hořký operátor (zde jsem požehnání nebo, ale můžete také udělat dvojnásobnou negaci, jako v dřívější odpovědi nebo bitové směny) převádí hodnotu na 32bitové celé číslo a většina z nich je převedena na podepsané celé číslo. Všimněte si, že to Nebude potřebovat pro velká celá čísla. Pokud může být integer reprezentována ve 32 bitech, bude dokončena.

~ ~ "3000000000.654" \u003d\u003d\u003d -1294967296 // Toto je stejné jako číslo ("300000000000.654") | 0 "300000000000.654" \u003e\u003e\u003e 0 \u003d\u003d\u003d 3000000000 // nepodepsané správné řazení poskytuje další bit "300000000000.654"\u003e \u003e\u003e 0 \u003d\u003d\u003d 3647256576 // Ale stále selže s většími čísly

Správně pracovat s velkými čísly, musíte použít metody zaokrouhlení

Math.Floor ("3000000000.654") \u003d\u003d\u003d 3000000000 // Toto je stejné jako math.floor (číslo ("300000000000.654"))

Mějte na paměti, že všechny tyto metody chápou exponenciální zápis, proto je 2E2 200, a nikoli NAN. Kromě toho počet chápe "nekonečno", zatímco metody analýzy ne.

Zvyk

Je špatné, že některý z těchto metod dělá přesně to, co chcete. Například, obvykle potřebuji chybu, ke které dochází, když selhání analýzy syntaxe a nepotřebuji nekonečnou podporu, vystavovatele nebo vedoucí mezery. V závislosti na vašem použití někdy má smysl napsat funkci konverze uživatele.

Vždy zkontrolujte, zda výstup čísla nebo jednoho z metod analýzy je číslo, které očekáváte. Skoro jistě chcete použít IsNan, aby se ujistil, že číslo není NAN (obvykle to je jediný způsob, jak zjistit, že analýza syntaxe se nezdařila).

V JavaScriptu je k dispozici 2 vestavěné funkce pro převod řádků v číslech: parsefloat () a parseint ().

parsefloat () vezme argument řetězec, který musí být uveden do číselného typu a vrátí počet typu float. Číslo by mělo být obsaženo na začátku řádku. Pokud po čísle v řádku jsou stále některé znaky, pak odříznuty. Frakční část čísla by měla být zaznamenána v bodě (čárka není vnímána jako separátor). V případě, že parsefloat () nemůže převést řetězec, vrátí se nan.

Také funkce zvuku zvládne "Num N násobit 10 do stupně X", který v programování je obvyklá pro záznam prostřednictvím písmene E, například: 0,5e6 nebo 0,5e + 6. Stupeň může být také negativní: 0,5e-6, což je 0,5 x 10 ^ -6 nebo 0,5 / 1000000.

Parsefloat ("" 3,78kg ") // 3.78 parsefloat (" "kg33" ") // Nan parsefloat (" 0004.111 "") // 4.111 Parsefloat ("0x66" ") // 0 parsefloat (" ". 5" ") // 0,5 Parsefloat (" "-. 5" ") // -0.5 Parsefloat (" "0.5e6" ") // 500000 parsefloat (" 0.03e + 2 "") // 3 parsefloat ("" 3e- 4 "") // 0,0003 Parsefloat ("" - 3e-4 "") // -0.0003

Funkce PARSEIN (řetězec [, Radix]) vezme řetězec jako první argument, analyzuje jej a vrátí celé číslo (typ integeru). Funkce se snaží analyzovat číselný systém, ve kterém je číslo zaznamenáno ve zdrojovém řádku (například desetinné, osmičkové nebo hexadecimální - ale nejen tyto). Také číslo číselného systému může být specifikován explicitně tím, že jej projde druhým parametrem Radix. Parametr Radix může mít libovolné číslo od 2 do 36 (v systémech nad 10., písmena anglické abecedy se používají z A do Z).

Čísla typu 1.5e6 Funkce se nezvládne jako parsefloat ().

Přečtěte si prosím níže uvedené příklady tak, aby nebyly nasazeny na úskalí, jsou využívány v provozu funkce parseint ().

PARSEIN ("" 25 "" ")") // 25 PARSEIN ("" - 25 "" ") // -25 PARSEIN (" "45.12" ") // 45 parseint (" 045 ", 10) // 45 parseint (" 70 ", 8) // 56 (70 v osmiznímu systému je 56 v desetinné míře) Parseign (" "070") // 56 (Důležité !!! Zero nejprve nutí funkci analyzovat řetězec jako oktalové číslo) Parseint ("" 88 ", 8) // Nan (v oktalovém systému žádná číslice 8) Parseint (" "A1") // Nan (Důležité !!! Výchozí funkce vnímá číslo jako 16 bohaté, Pokud není přidání na začátku řádků 0x) Parseint ("" A1 "", 16) // 161 (zde je jasně označeno číslem System) Parseign ("0xA1") // 161 (správný formát čísla 16-riche, Nemůžete zadat druhý parametr) Parseint ("099" ") // 0 (Důležité !!! Číslo je vnímáno jako osmičku, ale obsahující neplatné znaky) Parseint (" "0.5e6") // 0 (Důležité! !! nefunguje jako parsefloat) Parseint ("" ZZ ", 36) // 1295 Parseint (" "- FF") // Nan Parseint ("" - FF ", 16) // -255

Pokud zpracujete data z textové poleTo vstoupí do uživatele, vždy používejte parseint () spolu s parametrem druhého radix, bude chránit váš kód z neočekávaných výsledků.

V JavaScriptu je k dispozici 2 vestavěné funkce pro převod řádků v číslech: parsefloat () a parseint ().

parsefloat () vezme argument řetězec, který musí být uveden do číselného typu a vrátí počet typu float. Číslo by mělo být obsaženo na začátku řádku. Pokud po čísle v řádku jsou stále některé znaky, pak odříznuty. Frakční část čísla by měla být zaznamenána v bodě (čárka není vnímána jako separátor). V případě, že parsefloat () nemůže převést řetězec, vrátí se nan.

Také funkce zvuku zvládne "Num N násobit 10 do stupně X", který v programování je obvyklá pro záznam prostřednictvím písmene E, například: 0,5e6 nebo 0,5e + 6. Stupeň může být také negativní: 0,5e-6, což je 0,5 x 10 ^ -6 nebo 0,5 / 1000000.

Parsefloat ("" 3,78kg ") // 3.78 parsefloat (" "kg33" ") // Nan parsefloat (" 0004.111 "") // 4.111 Parsefloat ("0x66" ") // 0 parsefloat (" ". 5" ") // 0,5 Parsefloat (" "-. 5" ") // -0.5 Parsefloat (" "0.5e6" ") // 500000 parsefloat (" 0.03e + 2 "") // 3 parsefloat ("" 3e- 4 "") // 0,0003 Parsefloat ("" - 3e-4 "") // -0.0003

Funkce PARSEIN (řetězec [, Radix]) vezme řetězec jako první argument, analyzuje jej a vrátí celé číslo (typ integeru). Funkce se snaží analyzovat číselný systém, ve kterém je číslo zaznamenáno ve zdrojovém řádku (například desetinné, osmičkové nebo hexadecimální - ale nejen tyto). Také číslo číselného systému může být specifikován explicitně tím, že jej projde druhým parametrem Radix. Parametr Radix může mít libovolné číslo od 2 do 36 (v systémech nad 10., písmena anglické abecedy se používají z A do Z).

Čísla typu 1.5e6 Funkce se nezvládne jako parsefloat ().

Přečtěte si prosím níže uvedené příklady tak, aby nebyly nasazeny na úskalí, jsou využívány v provozu funkce parseint ().

PARSEIN ("" 25 "" ")") // 25 PARSEIN ("" - 25 "" ") // -25 PARSEIN (" "45.12" ") // 45 parseint (" 045 ", 10) // 45 parseint (" 70 ", 8) // 56 (70 v osmiznímu systému je 56 v desetinné míře) Parseign (" "070") // 56 (Důležité !!! Zero nejprve nutí funkci analyzovat řetězec jako oktalové číslo) Parseint ("" 88 ", 8) // Nan (v oktalovém systému žádná číslice 8) Parseint (" "A1") // Nan (Důležité !!! Výchozí funkce vnímá číslo jako 16 bohaté, Pokud není přidání na začátku řádků 0x) Parseint ("" A1 "", 16) // 161 (zde je jasně označeno číslem System) Parseign ("0xA1") // 161 (správný formát čísla 16-riche, Nemůžete zadat druhý parametr) Parseint ("099" ") // 0 (Důležité !!! Číslo je vnímáno jako osmičku, ale obsahující neplatné znaky) Parseint (" "0.5e6") // 0 (Důležité! !! nefunguje jako parsefloat) Parseint ("" ZZ ", 36) // 1295 Parseint (" "- FF") // Nan Parseint ("" - FF ", 16) // -255

Pokud zpracováváte data z textového pole, které vstupuje do uživatele, vždy použijte parseint () spolu s druhým parametrem Radix, bude chránit váš kód z neočekávaných výsledků.