Χρησιμοποιώντας τη μέθοδο ParseInt. Σύνταξη JavaScript parseInt: παραδείγματα χρήσης. Χρησιμοποιώντας τη μέθοδο parseInt

Η αναγνώριση ενός αριθμού σε μια συμβολοσειρά και η βεβαιότητα ότι ο αλγόριθμος χρησιμοποιεί την τιμή μιας μεταβλητής της οποίας ο τύπος είναι αριθμός είναι απαραίτητο σχεδόν σε κάθε αλγόριθμο. Μέθοδος JavaScript parseIntλύνει αυτό το πρόβλημα και σας επιτρέπει να αναγνωρίζετε αριθμητικές τιμές σε δημοφιλή συστήματαΥπολογισμός.

Σύνταξη της μεθόδου ParseInt

Η μέθοδος παίρνει δύο παραμέτρους, η δεύτερη από τις οποίες είναι προαιρετική. Το αποτέλεσμα της δουλειάς είναι πάντα ένας αριθμός. Εάν η πρώτη παράμετρος (συμβολοσειρά) δεν περιέχει χαρακτήρες συστήματος αριθμών στην αρχή, τότε το αποτέλεσμα θα είναι NaN.

Στους αριθμούς δεκαεξαδικό σύστημαΟι αριθμοί περιλαμβάνουν τα γράμματα: "a", "b", "c", "d", "e" και "f". Το πρόσημο ενός οκταδικού αριθμού είναι το πρώτο "0" και ένας δεκαεξαδικός αριθμός είναι ένα πρώτο ζεύγος "0x". Αλλά ο μετασχηματισμός δεν θα εκτελείται πάντα σωστά, αν και υποδεικνύεται σωστά συντακτικά.

Η συνάρτηση ανάλυσης αριθμών είναι μια δημοφιλής λειτουργία. Στο πολύ απλή υπόθεσηΗ μέθοδος parseInt και η προτροπή της JavaScript σάς επιτρέπουν να φιλτράρετε την εισαγωγή σωστών αριθμητικών τιμών για να λαμβάνετε γρήγορες αποφάσεις.

Σημείωση. Η συνάρτηση promt() εισάγει αυτό που πληκτρολόγησε ο επισκέπτης στο πεδίο εισαγωγής και όχι το "αποτέλεσμα" των κουμπιών Ok ή Cancel. Αυτός είναι ο λόγος για τον οποίο, για να λάβετε γρήγορες τιμές, μπορείτε να παρακολουθείτε το περιεχόμενο της εισόδου του επισκέπτη εν κινήσει και να αποδεχτείτε σωστή λύση.

Χρησιμοποιώντας τη μέθοδο parseInt

Ο προγραμματισμός στο Διαδίκτυο έχει τις δικές του ιδιαιτερότητες και έχει ισχυρή επιρροή στις ιδέες προγραμματισμού γενικά. Η συγχώνευση μικρών δεδομένων σε μια μεγάλη «λέξη» είναι μια παράμετρος της οποίας τα κύρια χαρακτηριστικά είναι:

  • συμπαγές;
  • γρήγορη αναγνώριση.

Σε πολλές περιπτώσεις, οι μεγαλύτεροι «θαυμαστές» αυτού του παράγοντα CSS και HTML άρχισαν να γράφουν έναν αριθμό και μετά αμέσως, χωρίς κενό, μονάδα μέτρησης ή σημείο στίξης. Με άλλα λόγια, συνθέστε αυστηρές συμβολικές ακολουθίες.

Τακτικές εκφράσεις γενικά, για όσους δεν είναι μυημένοι στα μυστήρια της ανάλυσης, είναι ο κώδικας Μορς, στον οποίο ένα χάος από τελείες και παύλες «μοιράζεται» σε όλους σχεδόν τους χαρακτήρες του παραδοσιακού συνόλου των οκτώ bit. Επιπλέον, όλα όσα δεν περιλαμβάνονται ορατό μέροςπίνακα συμβόλων, μπορείτε εύκολα να τον γράψετε με κωδικούς, δηλαδή αριθμούς και γράμματα - αυτή είναι η μέθοδος parseInt JavaScript.

Πολλές παράμετροι κάποιων Χαρακτηριστικά CSSμην επιτρέπετε κενά και λειτουργούν μόνο όταν είναι γραμμένα σε ένα ακριβές πρότυπο.

Η γλώσσα XML, παρ' όλη την ανοιχτότητά της, δεν επιτρέπει ελευθερίες κατά την κωδικοποίηση παραμετρικών πληροφοριών.

Παραδείγματα της ζήτησης για ανάλυση αριθμητικές πληροφορίεςΥπάρχουν πολλά που μπορούν να αναφερθούν εκτός JavaScript, αλλά δεν έχει σημασία. Εννοια Μέθοδος JavaScriptΤο parseInt εξαρτάται από το ρόλο που διαδραματίζουν οι αριθμητικές πληροφορίες και τον τρόπο με τον οποίο αναπαρίστανται σε μια μεγάλη ποικιλία εφαρμογών.

Αριθμητική ανάλυση νόημα

Η ανάλυση πληροφοριών είναι μια συμβολική διαδικασία, αλλά ο προγραμματισμός σήμερα εξακολουθεί να είναι η ίδια επεξεργασία αριθμητικών πληροφοριών όπως ήταν πριν από τρεις δεκαετίες. Στο παρελθόν δεν υπήρχε JavaScript & parseInt. Αλλά από την εμπειρία του παρελθόντος προέκυψε η γνώση για την επεξεργασία αριθμητικών πληροφοριών, η δυνατότητα κανονικές εκφράσειςκαι άλλες παρόμοιες ιδέες.

ΣΕ συγκεκριμένη περίοδοςχρόνο, οι γλώσσες προγραμματισμού πήραν «ελευθερίες». λέξεις-κλειδιά, «ξεκλείδωσε» το κυριλλικό αλφάβητο και επέτρεψε στον προγραμματιστή να επεξεργάζεται ασθενώς επισημοποιημένα δεδομένα. Αλλά αυτή η περίοδος ήταν σύντομη και με αυξανόμενο ενδιαφέρον για αντικειμενοστραφή προγραμματισμό, σχηματίστηκε στο μεταξύ μια «μαύρη τρύπα»:

  • πώς να το κάνουμε;
  • τι να κάνω.

Σύγχρονη γλώσσα προγραμματισμού γενικά (αν και το νόημα Γλώσσα JavaScriptδύσκολο να εκτιμηθεί γενικά) υποχρεούται να διαχωρίσει το εργαλείο της εργασίας από το αντικείμενο εργασίας. Το εργαλείο πρέπει να είναι ακριβές και γρήγορο, και το θέμα της εργασίας μπορεί να είναι όσο το επιθυμητό είναι μεγάλο και πρακτικά μη τυπικό. Αλλά το αποτέλεσμα του προγράμματος γίνεται πιο σημαντικό με κάθε στιγμή.

Η ανάπτυξη αντικειμένων χωρίς JavaScript parseInt είναι αδικαιολόγητη σπατάλη προσπάθειας, χρόνου και κώδικα. Οι μέθοδοι του αντικειμένου πρέπει να λειτουργούν σαν ρολόι, γρήγορα και με ακρίβεια. Αλλά το υποκείμενο για τη λειτουργία ενός αντικειμένου είναι η πληροφορία, το αποτέλεσμα της λειτουργίας ενός αντικειμένου είναι επίσης η πληροφορία. Και εδώ δεν είναι καθόλου απαραίτητο να κατανοήσουμε με αντικείμενο Έννοια JavaScript, PHP ή Python... είναι ιδιωτικές επιλογές και στυλ για την κωδικοποίηση πραγματικών αντικειμένων.

Η συνάρτηση parseInt() αναλύει ένα όρισμα συμβολοσειράς και επιστρέφει έναν ακέραιο αριθμό της καθορισμένης ρίζας (τη βάση στα μαθηματικά συστήματα αριθμών).

Η πηγή για αυτό το διαδραστικό παράδειγμα αποθηκεύεται σε ένα αποθετήριο GitHub. Εάν θέλετε να συνεισφέρετε στο έργο διαδραστικών παραδειγμάτων, κλωνοποιήστε τη διεύθυνση https://github.com/mdn/interactive-examples και στείλτε μας ένα αίτημα έλξης.

Σύνταξη parseInt( σειρά, ρίζα) Συμβολοσειρά παραμέτρων Η τιμή προς ανάλυση. Εάν το όρισμα συμβολοσειράς δεν είναι συμβολοσειρά, τότε μετατρέπεται σε συμβολοσειρά (χρησιμοποιώντας την αφηρημένη λειτουργία ToString). Το κύριο κενό διάστημα στο όρισμα συμβολοσειράς αγνοείται. radix Ένας ακέραιος αριθμός μεταξύ 2 και 36 που αντιπροσωπεύει την ρίζα (τη βάση στα μαθηματικά αριθμητικά συστήματα) της παραπάνω συμβολοσειράς. Η περιγραφήπαρακάτω εξηγεί με περισσότερες λεπτομέρειες τι συμβαίνει όταν αυτό το επιχείρημα δεν παρέχεται. Επιστρεφόμενη αξία

Ένας ακέραιος αριθμός αναλυμένος από τη δεδομένη συμβολοσειρά. Εάν ο πρώτος χαρακτήρας δεν μπορεί να μετατραπεί σε αριθμό, επιστρέφεται το NaN.

Περιγραφή

Η συνάρτηση parseInt μετατρέπει το πρώτο της όρισμα σε συμβολοσειρά, το αναλύει και επιστρέφει έναν ακέραιο ή NaN. Εάν όχι NaN, η επιστρεφόμενη τιμή θα είναι ο ακέραιος που είναι το πρώτο όρισμα που λαμβάνεται ως αριθμός στην καθορισμένη ρίζα (βάση). Για παράδειγμα, μια ρίζα 10 υποδεικνύει τη μετατροπή από δεκαδικό αριθμό, 8 οκταδικό, 16 δεκαεξαδικό και ούτω καθεξής. Για ρίζες πάνω από 10, τα γράμματα του αλφαβήτου υποδεικνύουν αριθμούς μεγαλύτερους από 9. Για παράδειγμα, για δεκαεξαδικούς αριθμούς (βάση 16), χρησιμοποιούνται Α έως F.

Εάν το parseInt συναντήσει έναν χαρακτήρα που δεν είναι αριθμός στην καθορισμένη βάση, αγνοεί αυτόν και όλους τους επόμενους χαρακτήρες και επιστρέφει την ακέραια τιμή που αναλύθηκε μέχρι εκείνο το σημείο. Το parseInt περικόπτει τους αριθμούς σε ακέραιες τιμές. Επιτρέπονται οι χώροι που οδηγούν και ακολουθούν.

Επειδή ορισμένοι αριθμοί περιλαμβάνουν τον χαρακτήρα e στην αναπαράσταση συμβολοσειράς τους (π.χ. 6.022e23), η χρήση του parseInt για την περικοπή αριθμητικών τιμών θα παράγει απροσδόκητα αποτελέσματα όταν χρησιμοποιούνται σε πολύ μεγάλους ή πολύ μικρούς αριθμούς. Το parseInt δεν πρέπει να χρησιμοποιείται ως υποκατάστατο του Math.floor() .

Εάν το radix είναι απροσδιόριστο ή 0 (ή απουσιάζει), η JavaScript προϋποθέτει τα εξής:

  • Εάν η συμβολοσειρά εισόδου ξεκινά με "0x" ή "0X", η ρίζα είναι 16 (δεκαεξαδική) και το υπόλοιπο της συμβολοσειράς αναλύεται.
  • Εάν η συμβολοσειρά εισόδου ξεκινά με "0", η ρίζα είναι οκτώ (οκταδική) ή 10 (δεκαδική). Το ποιο ακριβώς radix επιλέγεται εξαρτάται από την υλοποίηση. Το ECMAScript 5 προσδιορίζει ότι χρησιμοποιείται το 10 (δεκαδικό), αλλά δεν το υποστηρίζουν ακόμη όλα τα προγράμματα περιήγησης. Για αυτό το λόγο να προσδιορίζετε πάντα μια βάση όταν χρησιμοποιείτε το parseInt.
  • Εάν η συμβολοσειρά εισόδου ξεκινά με οποιαδήποτε άλλη τιμή, η ρίζα είναι 10 (δεκαδική).

Εάν ο πρώτος χαρακτήρας δεν μπορεί να μετατραπεί σε αριθμό, το parseInt επιστρέφει NaN.

Για αριθμητικούς σκοπούς, η τιμή NaN δεν είναι αριθμός σε καμία ρίζα. Μπορείτε να καλέσετε τη συνάρτηση isNaN για να προσδιορίσετε εάν το αποτέλεσμα του parseInt είναι NaN. Εάν το NaN μεταβιβαστεί σε αριθμητικές πράξεις, τα αποτελέσματα της πράξης θα είναι επίσης NaN.

Για να μετατρέψετε τον αριθμό στην κυριολεκτική συμβολοσειρά του σε μια συγκεκριμένη βάση, χρησιμοποιήστε το intValue.toString(radix) .

Παραδείγματα Χρήση parseInt

15 :

ParseInt("0xF", 16); parseInt("F", 16); parseInt("17", 8); parseInt(021, 8); parseInt("015", 10); // parseInt(015, 10); θα επιστρέψει 15 parseInt(15.99, 10); parseInt("15,123", 10); parseInt("FXX123", 16); parseInt("1111", 2); parseInt("15 * 3", 10); parseInt("15e2", 10); parseInt("15px", 10); parseInt("12", 13);

Το ακόλουθοΠαραδείγματα όλα επιστρέφουν NaN:

ParseInt("Hello", 8); // Καθόλου αριθμός parseInt("546", 2); // Ψηφία δεν είναιισχύει για δυαδικές αναπαραστάσεις

Τα ακόλουθα παραδείγματα επιστρέφουν όλα -15 :

ParseInt("-F", 16); parseInt("-0F", 16); parseInt("-0XF", 16); parseInt(-15.1, 10); parseInt("-17", 8); parseInt("-15", 10); parseInt("-1111", 2); parseInt("-15e1", 10); parseInt("-12", 13);

Τα ακόλουθα παραδείγματα επιστρέφουν όλα 4:

ParseInt(4.7, 10); parseInt(4.7 * 1e22, 10); // Ο πολύ μεγάλος αριθμός γίνεται 4 parseInt(0.00000000000434, 10); // Πολύ μικρός αριθμός γίνεται 4

Το ακόλουθο παράδειγμα επιστρέφει 224:

ParseInt("0e0", 16);

Οκταδικές ερμηνείες χωρίς ρίζα

Παρόλο που αποθαρρύνονται από το ECMAScript 3 και απαγορεύονται από το ECMAScript 5, πολλές υλοποιήσεις ερμηνεύουν μια αριθμητική συμβολοσειρά που αρχίζει με το 0 στην αρχή ως οκταδική. Το παρακάτω μπορεί να έχει οκταδικό αποτέλεσμα ή μπορεί να έχει δεκαδικό αποτέλεσμα. Καθορίζετε πάντα μια βάση για να αποφύγετε αυτήν την αναξιόπιστη συμπεριφορά.

ParseInt("0e0"); // 0 parseInt("08"); // 0, το "8" δεν είναι οκταδικό ψηφίο.

Το ECMAScript 5 καταργεί την οκταδική ερμηνεία

Η προδιαγραφή ECMAScript 5 της συνάρτησης parseInt δεν επιτρέπει πλέον στις υλοποιήσεις να αντιμετωπίζουν τις συμβολοσειρές που ξεκινούν με χαρακτήρα 0 ως οκταδικές τιμές. Το ECMAScript 5 αναφέρει:

Η συνάρτηση parseInt παράγει μια ακέραια τιμή που υπαγορεύεται από την ερμηνεία των περιεχομένων του ορίσματος συμβολοσειράς σύμφωνα με την καθορισμένη ρίζα. Το πρώτο λευκό διάστημα στη συμβολοσειρά αγνοείται. Εάν η ρίζα είναι απροσδιόριστη ή 0, θεωρείται ότι είναι 10, εκτός από την περίπτωση που ο αριθμός αρχίζει με τα ζεύγη χαρακτήρων 0x ή 0X, οπότε θεωρείται ρίζα 16.

Αυτό διαφέρει από το ECMAScript 3, το οποίο αποθαρρύνθηκε αλλά επέτρεψε την οκταδική ερμηνεία.

Πολλές υλοποιήσεις Δεν έχετευιοθέτησε αυτήν τη συμπεριφορά από το 2013 και επειδή πρέπει να υποστηρίζονται παλαιότερα προγράμματα περιήγησης, να προσδιορίζετε πάντα μια βάση .

Μια πιο αυστηρή συνάρτηση ανάλυσης

Μερικές φορές είναι χρήσιμο να έχετε έναν πιο αυστηρό τρόπο ανάλυσης των τιμών int. Οι κανονικές εκφράσεις μπορούν να βοηθήσουν:

Var filterInt = συνάρτηση(τιμή) (if (/^(-|\+)?(\d+|Infinity)$/.test(value)) return Number(value); return NaN; ) console.log(filterInt (" 421")); // 421 console.log(filterInt("-421")); // -421 console.log(filterInt("+421")); // 421 console.log(filterInt("Infinity")); // Infinity console.log(filterInt("421e+0")); // NaN console.log(filterInt("421hop")); // NaN console.log(filterInt("hop1.61803398875")); // NaN console.log(filterInt("1.61803398875")); // NaN

Προδιαγραφές Σχόλιο κατάστασης προδιαγραφών
ECMAScript 1st Edition (ECMA-262) Πρότυπο Αρχικός ορισμός.
ECMAScript 5.1 (ECMA-262)
Πρότυπο
ECMAScript 2015 (6η Έκδοση, ECMA-262)
Ο ορισμός του "parseInt" σε αυτήν την προδιαγραφή.
Πρότυπο
Τελευταίο προσχέδιο ECMAScript (ECMA-262)
Ο ορισμός του "parseInt" σε αυτήν την προδιαγραφή.
Προσχέδιο
Συμβατότητα προγράμματος περιήγησης

Ο πίνακας συμβατότητας σε αυτήν τη σελίδα δημιουργείται από δομημένα δεδομένα. Εάν θέλετε να συνεισφέρετε στα δεδομένα, ανατρέξτε στη διεύθυνση https://github.com/mdn/browser-compat-data και στείλτε μας ένα αίτημα έλξης.

Ενημερώστε τα δεδομένα συμβατότητας στο GitHub

Διακομιστής φορητών υπολογιστών Chrome Edge Firefox Internet Explorer Opera Safari Android Προβολή ιστού Chrome για Android Edge Mobile Firefox για Android Opera για Android Safari σε iOS Samsung Internet Node.jsparseInt Οι αναλύσεις των συμβολοσειρών αρχικών-μηδενικών είναι δεκαδικές, όχι οκταδικές
Πλήρης υποστήριξη Chrome ΝαιEdge Πλήρης υποστήριξη ΝαιΠλήρης υποστήριξη Firefox 1IE Πλήρης υποστήριξη ΝαιOpera Πλήρης υποστήριξη ΝαιSafari Πλήρης υποστήριξη ΝαιWebView Android Πλήρης υποστήριξη ΝαιFirefox Android Πλήρης υποστήριξη 4Safari iOS Πλήρης υποστήριξη Ναιnodejs Πλήρης υποστήριξη Ναι
Πλήρης υποστήριξη Chrome 23Edge Πλήρης υποστήριξη ΝαιΠλήρης υποστήριξη Firefox 21IE Πλήρης υποστήριξη 9Opera Πλήρης υποστήριξη ΝαιΠλήρης υποστήριξη Safari 6WebView Android Πλήρης υποστήριξη 4.4Chrome Android Πλήρης υποστήριξη ΝαιEdge Mobile Πλήρης υποστήριξη ΝαιFirefox Android Πλήρης υποστήριξη 21Opera Android Πλήρης υποστήριξη ΝαιSafari iOS Πλήρης υποστήριξη 6Samsung Internet Android Πλήρης υποστήριξη Ναιnodejs Πλήρης υποστήριξη Ναι

Η συνάρτηση ParseInt έχει σχεδιαστεί για να μετατρέπει μια συμβολοσειρά σε αριθμό στο JavaScript. Η μέθοδος παίρνει μια τιμή συμβολοσειράς ως όρισμα και τη μετατρέπει σε αριθμό χωρίς δεκαδικά ψηφία ή εναλλακτικά παράγει μια τιμή NaN. Το ParseInt παίρνει δύο ορίσματα. Η δεύτερη παράμετρος καθορίζει το σύστημα αριθμών που θα χρησιμοποιηθεί κατά τη μετατροπή μιας τιμής συμβολοσειράς σε αριθμό.

Ένα απλό παράδειγμα που χρησιμοποιεί δεκαδικό συμβολισμό μοιάζει με αυτό:

var x = "1"; console.log(x, typeof x); //1 γραμμή x = parseInt(x, 10); console.log(x, typeof x); //1 αριθμός Παράδειγμα ηλεκτρονικού κώδικα

Εάν δεν διαβιβαστεί όρισμα για μια τιμή συστήματος αριθμών, η προεπιλεγμένη τιμή (βασική μετρικό σύστημα). Μπορείτε επίσης να ορίσετε την τιμή σε 2 για να πείτε στη συνάρτηση να χρησιμοποιεί δυαδικό συμβολισμό. Η τιμή 8 λέει στο ParseInt να χρησιμοποιεί οκταδικό και η τιμή 16 λέει στο ParseInt να χρησιμοποιεί δεκαεξαδικό. Για συστήματα αριθμών με βάση μεγαλύτερη από 10, χρησιμοποιούνται γράμματα του αλφαβήτου αντί για αριθμούς μεγαλύτερους από 9.

Πριν μετατρέψετε μια συμβολοσειρά σε αριθμό στο JavaScript, ας δούμε ένα παράδειγμα μετατροπής δυάδικος αριθμόςσε έναν ακέραιο στο δεκαδικό σύστημα:

var x = 10; x = parseInt(x, 2); console.log(x); //2 Παράδειγμα ηλεκτρονικού κώδικα

Η μεταβλητή x παίρνει την τιμή 10. ΣΕ δυαδικό σύστημαη τιμή 10 (δηλαδή, "ένα, μηδέν") είναι ισοδύναμη με 2 σε δεκαδικό. Περάσαμε το ParseInt 10 στη συνάρτηση και καθορίσαμε το δυαδικό σύστημα ως αριθμητικό σύστημα. Η συνάρτηση επέστρεψε την τιμή 2, η οποία είναι ακέραιος αριθμός που ισοδυναμεί με "ένα, μηδέν".

Τι συμβαίνει αν περάσουμε το ParseInt στη συνάρτηση δεκαδικός αριθμόςμε ένα ή περισσότερα δεκαδικά ψηφία; Ας ρίξουμε μια ματιά:

var x = 3,14; x = parseInt(x, 10); console.log(x); //3 Παράδειγμα ηλεκτρονικού κώδικα

Η συνάρτηση ParseInt έγινε αποδεκτή αριθμητική αξίαμε δεκαδικά ψηφία και το έφερε σε ακέραιο αριθμό. Τι γίνεται όμως αν χρειαστεί να μετατρέψετε μια συμβολοσειρά σε αριθμό στο JavaScript; Εδώ είναι ένα παράδειγμα:

var x = "Hola World!"; x = parseInt(x, 10); console.log(x); //NaN ...ή Όχι ένας αριθμός Online παράδειγμα κώδικα

Εάν στο ParseInt διαβιβαστεί ένα όρισμα που δεν μπορεί εύκολα να μετατραπεί σε αριθμητική τιμή, τότε η τιμή επιστροφής θα είναι NaN (ή όχι αριθμός). Εάν μια συνάρτηση μεταβιβαστεί ένας συνδυασμός αριθμητικών και αλφαβητικών τιμών συμβολοσειράς, θα μετατρέψει τους αριθμητικούς χαρακτήρες σε ακέραιους και θα απορρίψει τους υπόλοιπους:

var x = "123UnoDosTres";

Εξερευνήστε τα μαθήματα JavaScript

x = parseInt(x, 10); console.log(x); //123 Παράδειγμα ηλεκτρονικού κώδικα

Αυτές είναι οι βασικές αρχές χρήσης της συνάρτησης ParseInt. Θα πρέπει να θυμόμαστε ότι ο κύριος σκοπός του ParseInt είναι η JavaScript μετάφραση μιας συμβολοσειράς σε αριθμό (χωρίς δεκαδικά ψηφία). Μπορείτε επίσης να καθορίσετε το σύστημα αριθμών που θα χρησιμοποιήσετε. Εάν μια συνάρτηση περάσει μια τιμή που δεν μπορεί να μετατραπεί σε αριθμό, τότε το ParseInt επιστρέφει NaN.

Περισσότερες πληροφορίες σχετικά με τη συνάρτηση ParseInt JavaScript μπορείτε να βρείτε εδώ.

Η μετάφραση του άρθρου “Using the JavaScript ParseInt Method” ετοιμάστηκε από τη φιλική ομάδα του έργου.

Καλό κακό

Τελευταία ενημέρωση: 1/11/2015

Συχνά υπάρχει ανάγκη μετατροπής ενός δεδομένων σε άλλο. Για παράδειγμα:

Var number1 = "46"; var number2 = "4"; var αποτέλεσμα = αριθμός 1 + αριθμός 2; console.log(result); //464

Και οι δύο μεταβλητές αντιπροσωπεύουν συμβολοσειρές, ή ακριβέστερα αναπαραστάσεις συμβολοσειρών αριθμών. Και στο τέλος δεν θα πάρουμε τον αριθμό 50, αλλά τη συμβολοσειρά 464. Αλλά θα ήταν ωραίο να μπορούσαν επίσης να προστεθούν, να αφαιρεθούν και γενικά να λειτουργήσουν όπως με τους συνηθισμένους αριθμούς.

Σε αυτή την περίπτωση μπορούμε να χρησιμοποιήσουμε πράξεις μετατροπής. Για να μετατρέψετε μια συμβολοσειρά σε αριθμό, χρησιμοποιήστε τη συνάρτηση parseInt():

Var number1 = "46"; var number2 = "4"; var result = parseInt(number1) + parseInt(number2); console.log(result); // 50

Για να μετατρέψετε συμβολοσειρές σε κλασματικούς αριθμούς, χρησιμοποιήστε τη συνάρτηση parseFloat():

Var number1 = "46.07"; var number2 = "4,98"; var result = parseFloat(number1) + parseFloat(number2); console.log(result); //51.05

Σε αυτήν την περίπτωση, η γραμμή μπορεί να έχει μικτό περιεχόμενο, για παράδειγμα, "123hello", δηλαδή in σε αυτήν την περίπτωσηΥπάρχουν αριθμοί, αλλά υπάρχουν και κανονικά σύμβολα. Αλλά η μέθοδος parseInt() θα προσπαθήσει να εκτελέσει τη μετατροπή:

Var num1 = "123 γεια"; var num2 = parseInt(num1); console.log(num2); // 123

Εάν η μέθοδος αποτύχει να μετατραπεί, επιστρέφει NaN (Όχι Αριθμός), που δείχνει ότι η συμβολοσειρά δεν αντιπροσωπεύει έναν αριθμό και δεν μπορεί να μετατραπεί.

Με τη χρήση ειδική λειτουργίαΤο isNaN() μπορεί να ελέγξει εάν μια συμβολοσειρά αντιπροσωπεύει έναν αριθμό. Εάν η συμβολοσειρά δεν είναι αριθμός, τότε η συνάρτηση επιστρέφει true, αν είναι αριθμός, τότε false:

Var num1 = "javascript"; var num2 = "22"; var αποτέλεσμα = isNaN(num1); console.log(result); // true - το num1 δεν είναι αριθμητικό αποτέλεσμα = isNaN(num2); console.log(result); // false - το num2 είναι ένας αριθμός

Παραπάνω εξετάσαμε τη μετατροπή συμβολοσειρών σε αριθμούς στο δεκαδικό σύστημα. Ωστόσο, μπορούμε να μετατρέψουμε αριθμούς σε οποιοδήποτε σύστημα. Από προεπιλογή, ο ίδιος ο διερμηνέας JavaScript μαντεύει σε ποιο σύστημα αριθμών θέλουμε να μετατρέψουμε τη συμβολοσειρά (συνήθως επιλέγεται το δεκαδικό σύστημα). Αλλά μπορούμε να χρησιμοποιήσουμε τη δεύτερη παράμετρο για να υποδείξουμε ρητά ότι θέλουμε να μετατρέψουμε τη συμβολοσειρά σε αριθμό σε ένα συγκεκριμένο σύστημα. Για παράδειγμα, μετατροπή σε αριθμό σε δυαδικό:

Var num1 = "110"; var num2 = parseInt(num1, 2); console.log(num2); // 6

Το αποτέλεσμα είναι 6, αφού το 110 στο δυαδικό είναι το ίδιο με το 6 στο δεκαδικό.

Τώρα ας γράψουμε μικρό πρόγραμμα, στις οποίες χρησιμοποιούμε πράξεις με μεταβλητές:

JavaScript var strSum = prompt("Εισαγάγετε το ποσό κατάθεσης", 1000); var strPercent = prompt("Εισαγάγετε το επιτόκιο", 10); var sum = parseInt(strSum); var ποσοστο = parseInt(strPercent); άθροισμα = άθροισμα + άθροισμα * ποσοστό / 100; alert("Μετά τον υπολογισμό των τόκων, το ποσό της κατάθεσης θα είναι: " + άθροισμα);

Η συνάρτηση prompt() εμφανίζει ένα παράθυρο διαλόγου στο πρόγραμμα περιήγησης που σας ζητά να εισαγάγετε μια τιμή. Το δεύτερο όρισμα αυτής της συνάρτησης καθορίζει την τιμή που θα χρησιμοποιηθεί ως προεπιλογή.

Ωστόσο, η συνάρτηση prompt() επιστρέφει μια συμβολοσειρά. Επομένως, πρέπει να μετατρέψουμε αυτή τη συμβολοσειρά σε αριθμό για να εκτελέσουμε πράξεις σε αυτήν.

Αφού ανοίξουμε τη σελίδα στο πρόγραμμα περιήγησης, θα δούμε μια προτροπή για να εισαγάγετε το ποσό κατάθεσης:

Στη συνέχεια θα εμφανιστεί ένα παρόμοιο μήνυμα για την εισαγωγή του ποσοστού. Και στο τέλος το πρόγραμμα θα λάβει τα δεδομένα, θα τα μετατρέψει σε αριθμούς και θα εκτελέσει τον υπολογισμό.



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: