Dizedeki sayının javascript dönüştürülmesi. Javascript: Veri Türü Dönüştürme

Javascript bir inepiest bir dildir (daha tam olarak, zayıf yazılmış veya dinamik olarak yazılmıştır). Bu, bildirildiğinde değişken türünü belirtmemiz gerektiği anlamına gelir. İnepoz, komut dosyası dili için tercih edilen JavaScript esnekliği ve sadeliği verir (bu özellikler, C veya Java gibi daha katı dillerde yazılmış uzun ve daha karmaşık programlar için önemli olan, uzun ve daha karmaşık programlar için önemli olan sertlik eksikliğinin fiyatını almasına rağmen). JavaScript'te veri türleriyle esnek çalışmanın önemli bir özelliği, tercüman tarafından yapılan otomatik veri dönüşümleridir. Örneğin, Document.Write () yöntemi iletilirse, JavaScript otomatik olarak eşdeğer bir dize gösterimine dönüştürür. Benzer şekilde, eğer talimat durumundaki dize değerini kontrol edin, JavaScript bu dizeyi otomatik olarak mantıksal bir değere dönüştürür - dize boşsa ve aksi takdirde geçerlidir.

Asıl kural, bir türün değeri bağlamda gerçekleştiğinde, başka bir türün değerinin gerekli olduğu durumlarda, JavaScript değeri istenen şekilde dönüştürmeye çalışır. Bu nedenle, örneğin, mantıksal bir değişken varsayar bağlamda, sayı mantıksal bir değere dönüştürülür.

Dize bağlamındaki nesne dizeye dönüştürülür. Javascript'in sayısal bağlamında montaj numaraya dönüştürmeye çalışıyor.

Dönüşüm "İlköğretim Nesnesi"
Örneğin, mantıksal bir bağlamda, aşağıdaki tüm nesneler doğru dönüştürülür:

Yeni boolean (yanlış) // dahili değer yanlış eşittir, ancak nesne
// true dönüştürülmüş
Yeni numara (0)
Yeni Dize (")
Yeni dizi ()

Nesnelerin sayısındaki dönüşümü, bu nesnenin ValueOF () yönteminin çağrısı ile başlar. Çoğu nesne miras alır standart yöntem Nesnenin kendisini döndüren () sınıfı nesnesi. Standart Value () yöntemi temel değeri döndürmediğinden, JavaScript daha sonra nesneyi TOSTRING () yöntemini çağırarak ve elde edilen dizgiyi dönüştürerek nesneyi bir numaraya dönüştürmeye çalışır. Diziler için, bu ilginç sonuçlara yol açar. TOSTRING () yönteminin, dizinin elemanlarını dizeye dönüştürdüğünü ve ardından bu satırların aralarında virgüllerle birleştirilmesinin sonucunu geri döndürdüğünü hatırlayın. Sonuç olarak, elemansız bir dizi, 0'a dönüştürülen boş bir dizeye dönüştürülür! Ek olarak, dizinin bir elementten oluşması durumunda, N numaralı, dizinin bu numaranın bir dize gösterimine dönüştürülür, bu daha sonra N numarasına geri dönüştürülür.

Bir dizi birden fazla eleman içeriyorsa veya tek elemanı bir sayı değilse, dizinin NAN'a dönüştürülür. Javascript'te bağlam her zaman kesin olarak belirlenmez! Operatör + ve karşılaştırma operatörleri (ve\u003e \u003d) hem sayılar ve dizelerle çalışır, bu nedenle nesne bu operatörlerden biriyle birlikte kullanıldığında, bir numaraya veya bir dizgeye dönüştürülmesi gerektiği belirsizdir. Çoğu durumda, JavaScript ilk önce ValueOf () yöntemini çağırarak bir nesneyi dönüştürmeye çalışır. Bu yöntem temel değeri döndürürse (genellikle sayı), bu değer kullanılır. Bununla birlikte, genellikle ValueOf () 'a dönüşümlü bir nesneyi döndürür; Bu durumda, JavaScript daha sonra bir nesneyi TOSTRING () yöntem çağrısını kullanarak dizeye dönüştürmeye çalışır. Bu dönüşüm kuralının sadece bir istisnası var: Tarih nesnesi + operatörde kullanıldığında, dönüşüm TOSTRING () yöntemi kullanılarak gerçekleştirilir. Bu istisnanın varlığı, tarihin TOSTRING () yöntemi ve ValueOF () yöntemine sahip olması nedeniyledir. Operatör ile tarihi kullanırken + hemen hemen her zaman bir dize birleştirme gerekir. Ancak, karşılaştırma işlemlerinde tarih karıştığında, neredeyse her zaman, iki zamanın hangi zamandan önce başka birinin öngördüğünü belirlemek için sayısal bir karşılaştırma yapmak gerekir.

Çoğu nesne veya ValuedOF yöntemine sahip değil () veya bu yöntem faydalı sonuçlar vermez.

Operatör + nesneye kullanıldığında, birleştirici dize genellikle gerçekleşir ve eklenmez. Karşılaştırma operatörü nesneye uygulandığında, bir sayısal değil, bir dize karşılaştırması yapılır.

Nesne tanımlama Özel yöntem Valueof () farklı davranabilir. Numarayı geri döndürerek () () yöntemini tanımlayarak, aritmetik ve diğer ifadeleri nesnenize uygulayabilirsiniz, ancak nesnenizin eklenmesi beklendiği gibi değil: TOSTRING () yöntemi artık aranmaz ve bir dize gösterimi Yöntem tarafından geri dönen sayı () () () birleşim değeri.

Son olarak, ValueOF () yönteminin Tonumber (), kesinlikle konuşulduğunu, görevi bir nesneyi anlamlı bir temel değere dönüştürmektir, böylece bazı nesnelerin satırları döndüren değerleri () yöntemlerine sahip olabilir.

Açık Dönüşüm Türleri
Java-Script, C, C ++ ve Java dillerinde olduğu gibi dönüşüm operatörünü tanımlamaz, ancak benzer araçlar sağlar. Javascript 1.1 (ve ECMA-262'de) sayı (), Boolean (), String () ve nesne () sadece tasarımcılar olarak değil, işlev olarak da adlandırılabilir. Bu şekilde ortaya çıkan bu işlevler onların dönüştürmeye çalışıyor
Uygun tipte argümanlar. Örneğin, herhangi bir X değerini dizgiyi (x) ve herhangi bir y değerini, nesneyi (Y) kullanan bir nesneye kullanarak dönüştürebilirsiniz.

Açık tip dönüşümleri gerçekleştirmek için faydalı olabilecek birkaç teknik daha vardır. Bir değeri bir dize dönüştürmek için, boş bir dize ile bir birleşim yapın:

Var x_as_string \u003d x + "";

Bir değeri bir numaraya dönüştürmek için, sıfırdan çıkarın:

Var x_as_number \u003d x - 0;

Herhangi bir değeri, operatörü kullanarak mantıksal bir değere dönüştürmek mümkündür!, İki kez uygulanan iki kez:

Var x_as_boolean \u003d !! x;

JavaScript eğilimi nedeniyle, verileri otomatik olarak gerekenlere dönüştürmek için şu an Tip, açık dönüşümler genellikle gerekli değildir. Bununla birlikte, bazen de faydalıdır ve programı daha net ve daha doğru yapmak için uygulanabilir.

Dizgedeki sayıların dönüşümü
Dizedeki sayıların dönüşümü JavaScript'te, muhtemelen diğerlerinden daha sık gerçekleştirilir. Genelde otomatik olarak gerçekleşmesine rağmen, bu türden açıkça dönüştürmenin birkaç faydalı yolu vardır. İki tane daha önce gördük:

Var string_value \u003d string (sayı); // dize tasarımcısını kullanarak ()
// işlev olarak
Var string_value \u003d number + ""; // boş bir dize ile birleştirilmesi

Başka bir fırsat, yöntem toostring () içindir:

String_value \u003d number.tostring ();

Numara nesnesinin TOSTRING () yöntemi (elementsel sayısal değerler, sayı nesnelerine dönüştürülür, böylece bu yöntemi arayabilirsiniz), dönüşümün gerçekleştirileceği sayı sisteminin tabanını ayarlayan isteğe bağlı bir argüman kabul eder. Eğer argüman belirtilmemişse, dönüşüm taban 10 ile gerçekleştirilir, ancak sayıları diğer bazlarla dönüştürebilirsiniz (2 ila 36 arasında). Örneğin:

Var n \u003d 17;
Binary_String \u003d n.Tostring (2); // eşit derecede "10001"
Oktal_string \u003d "0" + n.tostring (8); // eşit olarak "021"
hex_string \u003d "0x" + n.tostring (16); // eşit derecede "0x11"

1.5 sürümüne JavaScript sürümlerinin eksikliği yokluğundan oluşur. standart modaSayı'nın dönüşümünden kaynaklanan sıradaki ondalık işaret sayısını belirlemenizi sağlar veya üstel notasyonun kullanımını gerektirir. Bu, nakit değerleri gibi geleneksel formatlara sahip sayıların ekranını zorlaştırabilir.

ECMASCRIPT V3 ve JAVASCRIPT 1.5 Sayı sınıfına çizgiye üç yeni dönüşüm yöntemi ekleyerek bu engelin atlar. Tofixed () yöntemi, sayıyı dizeye dönüştürür ve ondalık noktadan sonra belirtilen sayıda sayıyı üssel gösterim kullanmadan görüntüler. Toexponential () yöntemi, sayıyı dizeye dönüştürür, ondalık noktadan önce bir rakamla ve ondan sonra belirtilen sayı sayısını bir rakamla kaydeder. TOPRECISE () yöntemi, belirtilen önemli rakam sayısını kullanarak bir sayı gösterir. Böyle bir sayıda önemli rakam, sayının bütün bir kısmını çıkarmak için yeterli değilse, üstel gösterimde kaydedilir. Lütfen, üç yöntemin tamamı ortaya çıkan çizgi rakamlarını doğru bir şekilde yuvarlattığını unutmayın. Aşağıdaki örneklere bakın:

Var n \u003d 123456.789;
n.tofixed (0); // "123457"
n.tofixed (2); // "123456.79"
N.toexponenal (1); // "1.2E + 5"
N.toexponential (3); // "1.235E + 5"
N.topresion (4); // "1.235E + 5"
N.topresion (7); // "123456.8"

Sayılarla satır dönüşümü
Sayıları temsil eden çizginin sayısal bağlamında otomatik olarak gerçek sayılara dönüştürüldüğünü gördük. Yukarıda gösterildiği gibi, bu dönüşüm açıkça olabilir:

Var numarası \u003d sayı (string_value);
Var numarası \u003d string_value - 0;

Böyle bir dönüşüm, aşırı titizliği nedeniyle uygunsuzdur. Sadece ile çalışır ondalık sayılarDönüşümün önde gelen ve kapanış alanlarına izin vermesine rağmen, satırdaki sayıdan sonra işaret olmayan karakterlere izin vermez. Daha esnek dönüşümler için, Parseint () ve Parsefat () işlevlerini kullanabilirsiniz. Bu fonksiyonlar, hattın başlangıcında mevcut olan herhangi bir sayı ile dönüştürülür ve sayısal olmayan herhangi bir karakteri yok sayılır. Parseint () işlevi, yalnızca tamsayıyı sürdürür ve ayrıştırıcı () hem tamsayılar hem de kayan nokta numaralarıdır. Dize "0x" veya "0x" ile başlarsa, Parseint () onu onaltılık bir sayı olarak yorumlar. Örneğin:

Parseint ("3 Kör fareler"); // 3 döndürür.
Ayrıştırılacak ("3.14 metre"); // 3,14 döndürür.
Parseint ("12.34"); // 12'ye döner.
Parseint ("0xff"); // 255 döndürür.

Parseint () işlevi, işleme sayısının sayısının tabanını gösteren ikinci bir argümana sahip olabilir. Geçerli değerler - 2 ila 36 arasında. Örneğin:

Parseint ("11", 2); // 3 döndürür 3 (1 * 2 + 1)
Parseint ("FF", 16); // 255 döndürür (15 * 16 + 15)
Parseint ("zz", 36); // 1295 döndürür (35 * 36 + 35)
Parseint ("077", 8); // 63 döndürür (7 * 8 + 7)
Parseint ("077", 10); // 77 döndürür (7 * 10 + 7)

Parseint () ve ayrıştırın () belirtilen dizgiyi numaraya dönüştüremezse, NAN'ı döndürürler.

Parseint ("on bir"); // nan döndürür.
Ayrıştırın ("72.47 $"); // nan döndürür.

Ekspresyonda ne tür değişkenlerin kullanıldığı bir fark yoktur. Eğer ifade matematiksel ise, tüm değişkenleri otomatik olarak sayısal olarak yorumlanacaktır. Hatlar işlenirse, ifadelerin tüm "katılımcıları" satır olarak kabul edilir. Ancak, "sayıya" javascript için dönüşüm görevi çok daha geniş bir bağlamda var.

Javascript satırların sayıları dönüştürme yöntemleri

Dizeleri sayılara dönüştürmek için cephanelik yöntemleri büyük değildir, ancak tüm basit durumlarda yeterlidir. Burada JavaScript (özellikle yeni başlayanlar için), pratik örneklerle basitten karmaşıktan karmaşık yoldur.

Örnek dört farklı çizgiyi tarif eder. Her birinin ilk bloğunda her biri değişken fonksiyonu Typeof dize olarak tanımlanır. Sonra her satır çok basit bir şekilde numaraya dönüştürülür. İkinci çıkış bloğunda, dönüşümden sonra değişkenlerdeki değişiklikler görünür, tipleri bir sayı haline geldi. JavaScript ParasEfloat dönüşüm örneği özellikle gösterge niteliğindedir: "12E + 3" idi, "12000" oldu.

Bir dizgeyi bir numaraya dönüştürürken değişiklikler önemli olabilir! Ancak sadece ilk karakterler önemlidir: dijital olmalıdırlar. Tek bir dijital sembol yoksa, sonuç nan olacaktır.

"Haline gelmiş" dizesinin ters dönüşümü her zaman aynı dize değildir. Bu an, sayısal bilgiyi girmenin doğruluğunu doğrulamak için kullanılabilir.

Geleneksel dönüşüm yöntemleri

Tamsayılar var ve sırasıyla fraksiyonel, JavaScript satırına:

  • ayrıştırma;
  • ayrıştırın.

Genel durum, basit bir matematiksel ifadede bir dize kullanılarak uygulanır.

"+" Sembol dizisinin önüne koymak yeterlidir ve bir numara varsa, ifadenin sonucu numara olacaktır. Değişkenin değeri değişebilir, ancak tür her zaman değişecektir: TypeOF, dizgiyi değil numarayı gösterecektir. Hat ifadesinde dönüştürülmüş bir değişkenin kullanımının tamamen farklı bir sonuç gösterebileceğini anlamak önemlidir.

Bu bağlamdaki yeni başlayanlar için JavaScript son derece basittir. Makinede çalıştığı için Pasrseint yöntemi tarafından bir tamsayı dönüşümünün çalışmalarını anlamak daha zordur. ondalık sistem Sayı, ancak dizeyi bir oktal veya onaltılık olarak yorumlayabilir. Bu durumda, bu durum her zaman sayı sistemini gösteren ikinci parametreye bağlı değildir.

Javascript satırına her zaman döner, ancak satırın başlangıcında satırda dijital bir sembol yoksa, sonuç nan olacaktır.

Sayı sistemleri hakkında fikir sahibi olmak, hexadecial kaydetme yöntemleri hakkında (sayı "0x" ile başlar) ve sekizli numaralar (sayı "0" ile başlar).

JavaScript yöntemi ayrışmasının nüanslarını anlamak için, matematiksel kayıtların gerçek bir sayı olduğu konusunda bir fikre sahip olmak yeterlidir.

Dönüştürmek

Javascript bir tarayıcı dilidir, çünkü Latin alfabesinin ana seti dışındaki semboller için kritik olan daha başka dillerdir. Sırala - hayatta kaldı. Ancak, tarayıcıda çalışmak için sıralama amaçları için sunucuya veri göndermek her zaman mantıklı değildir, tarayıcıda çalışmak için daha kolay ve daha pratiktir.

Böyle bir görevi çözmek için, dize sembollerini sayısal kodlarına dönüştürebilirsiniz veya sayısal kodlarına veya rakamlarına ve rakamlarına sıralı bir sayı dizisini atayabilirsiniz. String'e uygulanan CharcoDeat () yöntemi, IB değişkeninin sayısal bir değeri 98, yani "B" harfi kodu. "A" harfinin kodunun değerinin 97 olduğu göz önüne alındığında, Latin alfabesinin tüm harflerinin sayısını hatta ve büyük harflerdeki artan sırayla alabilirsiniz. Rus alfabesinin harflerine benzer.

Sayılarla kendi sıralama varyantı, istenen karakter kümelerini oluşturmanıza olanak sağlar. Örneğin, "Kiril ve Latin'i" engellemek ve yalnızca mükemmel yazı harfleri bırakmak için, sekmeleri ve boşluk kümelerine eklemek için bunları karıştırmak mümkündür.

Benzersiz bir dize oluşumu

"A" harf kodu 97 ise, mektup ve 97 numaralı arasındaki fark, alfabedeki benzersiz bir sayı verecektir. Her satır sembolü için benzersiz numaraların özetlenmesi, bu dizgeyi benzersiz bir sayı elde etmek zordur.

Dizedeki harfin her bir pozisyonu, örneğin konumlandırılmıştır:

  • 0 Ağırlık 1;
  • 1 ağırlık 10;
  • 2 ağırlık 100;

dizenin her karakterinin her bir karakterinin, algılandığı pozisyonun ağırlığında ve benzersiz bir numarayı alabileceğiniz ve orijinal satırda açık bir yazışma olarak kullanabilirsiniz.

Böyle bir satır dönüşümü geri dönüşümlüdür, yani kaynak satırını her zaman alabileceğiniz numaradan. Böyle bir dönüşüm faydalıdır, çünkü bir sayı ile herhangi bir işlemi, Kodlama, Kiril ve diğer yerel özellikleri, Site sayfasının Kirlık ve diğer yerel özellikleri, uygulama alanı, ziyaretçi ülkeleri bağlamında güvenle yapabilirsiniz.

"Büyüyen" site sayfası seçicileri

Genellikle, sitelerde seçiciler oluşturma görevi, değerleri önceden belirtilemeyen, ancak zamanla tamamlanırlar. İlk uygulamada, bilgiyi girmek için ilk ziyaretçi için boş bir seçici mevcuttur.

Seçicideki (herhangi bir ziyaretçi tarafından) bilgi hatlarının her yeni girişi, orijinal ile birlikte depolama sunucusuna gönderilir. Yeni bir çalışma oturumu başladığında veya yeni bir ziyaretçi gelirse, seçici artık boş değildir. İndirme sayfası, boş olmayan bir seçici olan tarayıcıya gelir.

Her yeni seçici değeri olan, yalnızca bir kez depolama sunucusuna gittiğinde ve yalnızca bir kez benzersiz bir dijital kod atandıktan sonra.

Bu görevi çözmek için, JavaScript yöntemi bir satır kullanmak için kullanılamaz. Her zamanki parseint ve ayrışkanı yöntemleri, diğer kullanım için tasarlanmıştır, ancak dizgenin numaradaki açık bir şekilde dönüştürülmesi için bir algoritma gelebilir ve mutlaka geri dönüşümlü değil. Dönüşüm algoritması algoritması, hattaki farklı karakter kümelerinde tekrarlanmayacağı yeterlidir.

Trafik Optimizasyonu ve Analitik

Bir sayfa oluştururken, geliştirici önemli miktarda bilgi kullanır. Bilgi girmek için bir ziyaretçi sağlayın - iyi bir yol Zayıf işlevselliği nedeniyle saha derecesini düşürmek ve ziyaretçiyi hayal kırıklığına uğratmak için.

Bir olay işleyicisi, bir javascript işlevi biçiminde, belirli bilgi blokları için ziyaretçinin eylemlerine göre, ziyaretçinin bir hedefi doğru bir şekilde belirlemesini sağlayacak bir filtreyi formüle edebilirsiniz. gerekli bilgi, istediğiniz çözümü elde edin.

Buradaki küçük harflerin dönüşümü, hattın bir kısmında keyfi bir şekilde kapasiteli olabilir ve sayıca çok küçük olabilir. Başka bir deyişle, JavaScript satırının geliştirici sayısına dönüştürülmesi, algoritmasına göre gerçekleştirir. Ziyaretçi anlaşılır bilgiyi manipüle eder ve sunucunun minimum miktarda veri vardır - bir numara.

Tüm ziyaretçilerdeki birçok sayının dinamikleri, tam olarak bilinen bilgiler bağlamındaki tüm ziyaretçilerde, Ajax Mekanizması aracılığıyla sunucu yanıtı olarak adlandırılan başka bir JavaScript işlevine (işleyiciyi değil), tüm ziyaretçileri aynı anda gerekli bilgileri vermek için derhal gerçek zamanlıdır. Yani sistem çalışıyor.

JavaScript satırını dönüştürmek için bu seçenek, çevrimiçi oyunların geliştirilmesinde çok talepte, interaktif konferanslar, transfer anlık mesajlar vb.

Dönüşümlerin Takım Kullanımı

İşleme bağlamında javascript ve CSS sayısal bilgi Sayfa ekranını sunucu katılımı olmadan yönetmenize izin verin. CSS kuralları, inceltme, özyinelemeli olarak inşa edilmiştir. Genellikle parametre birkaç harf (örneğin, "PX", "PT", "EM", ...) takip eden sayıdır. Parametre, kuraldaki bir substressdır ve kural, bir sınıfın veya tanımlayıcının tarzında bir substrole girer.

Özyineleme javascript.strete. Yapı ... İstenilen numaraya gider, dizgeden numaraya dönüştürür, değiştirir ve istediğiniz yere geri yazar. Kural "Makineyi" değiştiriyor. Basit ve kullanışlı, sunucu katılımı yok.

Dizeyi JavaScript'e dönüştürmenin iki ana yolu vardır. Tek yönlü analiz etmektir ve başka bir yolu - türünü sayıya değiştirin. Diğer yanıtlardaki tüm püf noktaları (örneğin, UNARY PLUS), bir dize gibi sayıya benzetecek bir zorlama anlamına gelir. Ayrıca numara işleviyle de aynısını yapabilirsiniz.

Sözdizimsel

Var parsed \u003d Parseint ("97", 10);

parseint ve ayrıştırdoğu sıraları sayılara ayrıştırmak için kullanılan iki fonksiyondur. Sözdizimi analizi, örneğin "92px" için, dizelerin sözdizimsel analizi için faydalı olabileceğini tanımadığı bir sembole düşerse, sessizce durur, ancak aynı zamanda biraz tehlikelidir çünkü size kötü bir şekilde hata vermeyecek Giriş, bunun yerine "Dize numara ile başlamazsa NAN döndürün. Çizginin başlangıcındaki boşluk göz ardı edilir. İşte farklı bir şey ne yaptığına, ihtiyacınız olan şeyin bir örneğidir ve bir şeyin gittiğini belirtmez yanlış:

Var widgetssold \u003d Parseint ("97,800", 10); // widgetssold şimdi 97

İyi uygulama her zaman ikinci bir argüman olarak gösterir. Eski tarayıcılarda, eğer dize 0 ile başladığında, birçoğu sürprizle birçok insanı çeken Radix'in değeri ile belirtilmemişse, sekiz olarak yorumlanacaktır. Radix değeri belirtilmemişse, dize 0x ile başlarsa, onaltılık lansman için davranış başlar. 0xff. Standart aslında ECMAScript 5'i kullanarak değişti. modern tarayıcılar Yarıx değeri belirtilmediğinde, ana bilgisayar belirtildiğinde artık sekizgen çalıştırmayın. Parseint, radikalleri baz 36'ya anlar ve bu durumda hem üst hem de küçük harfler eşdeğer olarak işleniyor.

Dize Türü Numaraya Göre Değiştir

Yukarıda belirtilen diğer tüm püf noktaları, Parseint kullanmaz, dizenin sayısına doğru bir şekilde zorlanmasını sağlar. Açıkça yapmayı tercih ederim

Var cast \u003d number ("97");

Bu, analiz yöntemlerinden farklıdır (hala boşlukları görmezden olmasa da). Sıkıdır: Tüm çizgiyi Nan'a göre anlamazsa, bu nedenle, 97PX tipi dizeleri için kullanamazsınız. İlkel bir numaraya ihtiyacınız olduğundan, Sayı Sarıcı Nesnesi değil, Numara işlevinden önce yeni ayarlamadığınızdan emin olun.

Açıkçası, sayıya dönüşüm size yüzdürülebilen bir değer sunar, bir tam sayı değilse, bir tamsayı istiyorsanız, değiştirmeniz gerekir. Bunu yapmanın birkaç yolu vardır:

Var rounded \u003d math.floor (sayı ("97.654")); // Diğer seçenekler Math.ceil, math.round var sabit \u003d sayı ("97.654"). Tofixed (0); // kısırdan ziyade yuvarlandı var Bitwised \u003d numarası ("97.654") | 0; // çok sayıda kullanmayın

Herhangi bir acı operatör (burada ben bir nimetliyim, ancak daha önce bir cevaplama ya da bit vardiyasında olduğu gibi, değeri 32 bit bir tamsayıya dönüştürür ve çoğu, çoğu imzalı bir tamsayıya dönüştürülür. Bunun olduğunu unutmayın Büyük tamsayılar için gerekmez. Bir tamsayı 32 bit olarak gösterilebiliyorsa, tamamlanacaktır.

~~ "3000000000.654" \u003d\u003d\u003d -1294967296 // Bu, sayı ile aynıdır ("300000000.654") | 0 "3000000000.654" \u003e\u003e\u003e 0 \u003d\u003d\u003d 300000000000 // İmzasız sağ kayma size ekstra bir bit "300000000000.654"\u003e \u003e\u003e 0 \u003d\u003d\u003d 3647256576 // ancak yine de daha büyük sayılarla başarısız olur

Çok sayıda çok sayıda çalışmak için, yuvarlama yöntemlerini kullanmanız gerekir.

Matematik ("300000000.654") \u003d\u003d\u003d 3000000000 // bu matematik ile aynıdır (sayı ("300000000000.654")))

Tüm bu yöntemlerin üstel gösterimi anladığını, bu nedenle 2E2'nin 200 olduğunu ve Nan değil. Ek olarak, sayı "sonsuzluğu" anlarken, analiz yöntemleri yapmaz.

Özel

Bu yöntemlerden herhangi birinin tam olarak istediğinizi yapması yanlıştır. Örneğin, genellikle bir sözdizimi analizi arızası olduğunda oluşan bir hataya ihtiyacım var ve sonsuzluk desteğine, katılımcılara veya önde gelen boşluklara ihtiyacım yok. Kullanımınıza bağlı olarak, bazen bir kullanıcı dönüşüm işlevi yazmak mantıklıdır.

Her zaman, sayı çıkışının veya analiz yöntemlerinden birinin çıktısının beklediğiniz sayı olduğunu kontrol edin. Numaranın NAN'I olmadığından emin olmak için neredeyse kesinlikle ISNAN'ı kullanmak istiyorsunuz (genellikle sözdizimi analizinin başarısız olduğunu öğrenmenin tek yolu budur).

Javascript'te satırları sayılarla dönüştürmek için 2 yerleşik işlev vardır: Parsefat () ve Parseint ().

parseFloat () argümanı, sayısal bir türe getirilmesi gereken bir dize alır ve tür yüzeyi sayısını döndürür. Sayı çizginin başlangıcında bulunmalıdır. Hatta bir numaradan sonra hala bazı karakterler varsa, sonra kesilirler. Numaranın kesirli kısmı nokta boyunca kaydedilmelidir (virgül bir ayırıcı olarak algılanmaz). Parsefat () bir dizgiyi dönüştüremezse, NAN'u döndürür.

Ayrıca, fonksiyon, programlamada, örneğin, örneğin, örneğin: 0.5E6 veya 0.5E + 6 harfinden kayıt olmak için geleneksel olanı olan "Derece X ile çarpılan Derece X" ile başa çıkabilir. Derecesi negatif olabilir: 0.5 * 10 ^ -6 veya 0.5 / 1000000 olan 0.5E-6.

ParseFloat ("" 3.78kg ") // 3.78 Parsefloat (" "KG33" ") // Nan ParseFloat (" 0004.111 "") // 4.111 Parsefat ("0x66" ") // 0 ParseFloat (" ". 5" ") // 0.5 ayrıştırın (" "-. 5" ") // -0.5 ParseFloat (" "0.5E6" ") // 500000 ayrışkanı (" 0.03E + 2 "") // 3 ParseFloat ("" 3E- 4 "") // 0.0003 ParseFloat ("" - 3E-4 "") // -0.0003

Parseint (string [, radix]) özelliği, dizeyi ilk argüman olarak alır, analiz eder ve bir tamsayı döndürür (tamsayı). İşlev, sayının kaynak satırında kaydedildiği (örneğin, ondalık, oktal veya onaltılık - ancak yalnızca bunlar) numaralandırıldığı numarayı analiz etmeye çalışıyor. Ayrıca, numara sistemi, ikinci yarıx parametresi ile geçerek açıkça belirtilebilir. Radix parametresi, 2 ila 36 arasında herhangi bir sayı alabilir (10'taki sistemlerde, İngilizce alfabesinin harfleri A'dan Z'ye kadar kullanılır).

NUMARALAR TİPİ 1.5E6 İşlev, ParseFloat () olarak kullanılmaz.

Lütfen aşağıdaki örnekler okuyun, böylece tuzakları giymemek için Parseint () işlevinin çalışmasında harnessed.

Parseint ("" 25 "") // 25 Parseint ("" - 25 "") // -25 Parseint ("" 45.12 "") // 45 Parseint ("045" ", 10) // 45 Parseint (" 70 ", 8) // 56 (70 Octal sistemde ondalıkta 56'dır) Parseint (" "070") // 56 (Önemli !!! Sıfır önce işlevi bir oktlu numarası olarak analiz etme işlevini zorlar) Parseint ("" 88 "", 8) // nan (oktal sistemde rakam yok 8) Parseint ("" A1 ") // nan (önemli !!! Varsayılan işlev, sayıyı 16 bakımından zengin olarak algılamıyor, Başlangıç \u200b\u200bsatırlarına 0x eklenmiyorsa) Parseint ("" a1 "", 16) // 161 (burada Number System tarafından açıkça belirtilmiştir) Parseint ("0xa1") // 161 (Doğru 16-Riche Numara formatı, İkinci parametreyi belirtemezsiniz) Parseint ("" 099 "") // 0 (Önemli !!! Sayı, sekizlik olarak algılanır, ancak geçersiz karakterler içeren) Parseint ("" 0.5E6 ") // 0 (Önemli! !! ayrışkanı olarak çalışmamak) Parseint ("" ZZ "", 36) // 1295 Parseint ("" - FF "") // Nan Parseint ("" - FF "", 16) // -255

Eğer verileri işlerseniz metin alanıKullanıcıya giren, her zaman ikinci yarıx parametresiyle birlikte Parseint () kullanın, kodunuzu beklenmedik sonuçlardan koruyacaktır.

Javascript'te satırları sayılarla dönüştürmek için 2 yerleşik işlev vardır: Parsefat () ve Parseint ().

parseFloat () argümanı, sayısal bir türe getirilmesi gereken bir dize alır ve tür yüzeyi sayısını döndürür. Sayı çizginin başlangıcında bulunmalıdır. Hatta bir numaradan sonra hala bazı karakterler varsa, sonra kesilirler. Numaranın kesirli kısmı nokta boyunca kaydedilmelidir (virgül bir ayırıcı olarak algılanmaz). Parsefat () bir dizgiyi dönüştüremezse, NAN'u döndürür.

Ayrıca, fonksiyon, programlamada, örneğin, örneğin, örneğin: 0.5E6 veya 0.5E + 6 harfinden kayıt olmak için geleneksel olanı olan "Derece X ile çarpılan Derece X" ile başa çıkabilir. Derecesi negatif olabilir: 0.5 * 10 ^ -6 veya 0.5 / 1000000 olan 0.5E-6.

ParseFloat ("" 3.78kg ") // 3.78 Parsefloat (" "KG33" ") // Nan ParseFloat (" 0004.111 "") // 4.111 Parsefat ("0x66" ") // 0 ParseFloat (" ". 5" ") // 0.5 ayrıştırın (" "-. 5" ") // -0.5 ParseFloat (" "0.5E6" ") // 500000 ayrışkanı (" 0.03E + 2 "") // 3 ParseFloat ("" 3E- 4 "") // 0.0003 ParseFloat ("" - 3E-4 "") // -0.0003

Parseint (string [, radix]) özelliği, dizeyi ilk argüman olarak alır, analiz eder ve bir tamsayı döndürür (tamsayı). İşlev, sayının kaynak satırında kaydedildiği (örneğin, ondalık, oktal veya onaltılık - ancak yalnızca bunlar) numaralandırıldığı numarayı analiz etmeye çalışıyor. Ayrıca, numara sistemi, ikinci yarıx parametresi ile geçerek açıkça belirtilebilir. Radix parametresi, 2 ila 36 arasında herhangi bir sayı alabilir (10'taki sistemlerde, İngilizce alfabesinin harfleri A'dan Z'ye kadar kullanılır).

NUMARALAR TİPİ 1.5E6 İşlev, ParseFloat () olarak kullanılmaz.

Lütfen aşağıdaki örnekler okuyun, böylece tuzakları giymemek için Parseint () işlevinin çalışmasında harnessed.

Parseint ("" 25 "") // 25 Parseint ("" - 25 "") // -25 Parseint ("" 45.12 "") // 45 Parseint ("045" ", 10) // 45 Parseint (" 70 ", 8) // 56 (70 Octal sistemde ondalıkta 56'dır) Parseint (" "070") // 56 (Önemli !!! Sıfır önce işlevi bir oktlu numarası olarak analiz etme işlevini zorlar) Parseint ("" 88 "", 8) // nan (oktal sistemde rakam yok 8) Parseint ("" A1 ") // nan (önemli !!! Varsayılan işlev, sayıyı 16 bakımından zengin olarak algılamıyor, Başlangıç \u200b\u200bsatırlarına 0x eklenmiyorsa) Parseint ("" a1 "", 16) // 161 (burada Number System tarafından açıkça belirtilmiştir) Parseint ("0xa1") // 161 (Doğru 16-Riche Numara formatı, İkinci parametreyi belirtemezsiniz) Parseint ("" 099 "") // 0 (Önemli !!! Sayı, sekizlik olarak algılanır, ancak geçersiz karakterler içeren) Parseint ("" 0.5E6 ") // 0 (Önemli! !! ayrışkanı olarak çalışmamak) Parseint ("" ZZ "", 36) // 1295 Parseint ("" - FF "") // Nan Parseint ("" - FF "", 16) // -255

Verileri, kullanıcıya giren bir metin alanından, her zaman ikinci Radix parametresiyle birlikte Parseint () kullanın, kodunuzu beklenmeyen sonuçlardan koruyacaktır.