Neu Konvertieren einer Zeichenfolge in eine Zahl in JavaScript: Erläuterung und Codebeispiel erforderlich

sam11

Mitglied
24. September 2022
11
0
India
Ich versuche, in JavaScript eine Zeichenfolge in eine Zahl umzuwandeln, erhalte jedoch unerwartete Ergebnisse. Obwohl ich Funktionen wie parseInt() und parseFloat() verwendet habe, bin ich in bestimmten Fällen immer noch verwirrt über das Verhalten. Könnte jemand den Prozess der Konvertierung einer Zeichenfolge in eine Zahl erläutern und ein Codebeispiel bereitstellen?

Folgendes habe ich bisher versucht:

JavaScript:
let stringNumber = "123";
let parsedInt = parseInt(stringNumber);
let parsedFloat = parseFloat(stringNumber);

console.log(typeof parsedInt, parsedInt); // Output: number 123
console.log(typeof parsedFloat, parsedFloat); // Output: number 123

Wenn ich jedoch auf Zeichenfolgen mit nicht numerischen Zeichen oder Dezimalstellen stoße, scheinen die Ergebnisse inkonsistent zu sein:

JavaScript:
let nonNumericString = "abc";
let stringWithDecimal = "45.67";

let parsedNonNumeric = parseInt(nonNumericString);
let parsedWithDecimal = parseInt(stringWithDecimal);

console.log(parsedNonNumeric); // Output: NaN
console.log(parsedWithDecimal); // Output: 45

Kann mir jemand erklären, warum sich die Konvertierung so verhält und wie ich Strings zuverlässig in Zahlen umwandeln kann, auch wenn es sich um nicht numerische Zeichen oder Dezimalzahlen handelt? Ich habe auf mehreren Websites gesucht, darunter auch auf Scaler, bin aber noch nicht auf eine Lösung gestoßen. Ich würde mich über eine klare Erklärung und einige Codebeispiele freuen, um die richtigen Verfahren zu zeigen. Ich freue mich schon jetzt über Ihre Hilfe!
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.345
330
Halle (Saale)
Was ist daran inkonsistent? Bzw. was hättest du denn erwartet, wenn man eine Fließkommazahl als Int parst?
Ansonsten schau dir evtl. mal die Number-Klasse an: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number
Prüfen, ob das ganze evtl. "NaN" ist, musst du aber natürlich trotzdem:

Code:
let parsedNonNumeric = new Number("abc");
let parsedWithDecimal = new Number("45.67");

console.log(isNaN(parsedNonNumeric)); // true
console.log(isNaN(parsedWithDecimal)); // false
console.log(parsedNonNumeric.toString()); // Output: NaN
console.log(parsedWithDecimal.toString()); // Output: "45.67"
console.log(parsedWithDecimal.valueOf()); // Output: 45.67
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Lager einer anderen Firma in Kommission betreiben und daraus eigene Aufträge ausliefern User helfen Usern - Fragen zu JTL-Wawi 0
Neu Alle Artikel in einer Kategorie User helfen Usern - Fragen zu JTL-Wawi 4
Neu Abfrage eines Eigenen Feldes aus einem Aufträge nach einer GET/Json Abfrage Eigene Übersichten in der JTL-Wawi 8
Neu Zahlungsart einer Bestellung ändern Allgemeine Fragen zu JTL-Shop 0
In Diskussion Workflow / SQL Zahlartname prüfen bei mehr als einer Zahlung JTL-Workflows - Fehler und Bugs 1
Neu Anleitung zur Installation der JTL-Datenbank auf MSSQL für Linux in einer virtuellen Maschine auf TrueNAS Core... Teil 2 Installation von JTL-Wawi 0
Neu Ist es mit der Ameise möglich nur Artikel zu exportieren, die einem bestimmten Zeitraum von einer bestimmten Person bearbeitet wurden? User helfen Usern - Fragen zu JTL-Wawi 2
Neu Anleitung zur Installation der JTL-Datenbank auf MSSQL für Linux in einer virtuellen Maschine auf TrueNAS Core (...interessant für One-Man-Shows...) Gelöste Themen in diesem Bereich 9
Neu Erstellen einer Neuen Datenbank schlägt fehl [MSSQL 2019 auf Ubuntu 20.04 server] Installation von JTL-Wawi 7
Link für Artikel einer Kategorie erstellen - How to? JTL-Wawi 1.7 2
Neu Wareneingang WMS nach Lieferdatum (FIFO) in einer Lieferantenbestellung Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu Kombination von Versandklassen in einer Bestellung Allgemeine Fragen zu JTL-Shop 3
Neu Fehler beim Erstellen einer neuen Datenbank Gelöste Themen in diesem Bereich 3
Neu Stornieren einer Bestellung User helfen Usern - Fragen zu JTL-Wawi 1

Ähnliche Themen