2017-09-07 5 views
0

Wie konvertiert man "4,250,000.40" zu 4,250,000.40 das Konvertieren von Zeichenfolge in Zahl durch das Bleiben der Kommas und Punkte? Verwenden von JavaScriptWie konvertiert man eine Zeichenfolge in eine Zahl?

+1

Sie können nicht, was Sie wollen, ist keine gültige Nummer – adeneo

+2

Versuchen Sie '+" 4,250,000.40 ".replace (/ \,/g, '')' und Sie erhalten '4250000.4' – adeneo

+0

danke für Ihre Antwort, Kann ich der konvertierten Zahl frühere Kommas und Punkte hinzufügen? –

Antwort

4

Sie können parseFloat (str) verwenden, um eine Zeichenfolge in eine Zahl zu konvertieren, aber zuerst müssen Sie die Kommas aus der Zeichenfolge entfernen, da parseFloat nicht für Zahlen mit Kommas in ihnen funktioniert.

parseFloat(str.replace(/,/g, "")); 
+0

Kann ich frühere Kommas und Punkte zu der konvertierten Zahl nach der Konvertierung hinzufügen? –

+0

Sobald es konvertiert wurde, ist es eine Zahl und keine Zeichenfolge. Sie können keine Kommas zu Zahlen hinzufügen, da ihre Speicherdarstellung nichts anderes als Daten zu dem Wert der Zahl zulässt. – EKW

1

var str = "4,250,000.40"; 
 
str = str.replace(/\,/g, "") 
 
console.log(str) 
 
console.log(parseFloat(str).toFixed(2))//to always show 2 decimal places

1

Sie können "4,250,000.40" auf eine Zahl in Vanille JS nicht direkt konvertieren, geschweige denn Kommas bewahren. 4,250,000.40 ist keine gültige Zahl in JavaScript, da ein comma ein unzulässiges Zeichen in einem Number ist.

Sie können Regex verwenden, um Kommas zu löschen, dann verwenden Sie Number.parseFloat(), aber dann ist die Formatierung der Zahlen verloren. Stattdessen empfehle ich die Verwendung einer Zahlenformatierungsbibliothek wie Numeral.js. So konvertieren "4,250,000.40" zu einem numeral würden Sie verwenden:

const num = numeral("4,250,000.40"); 

Sie Ihre Nummer mit der format() Methode, wie so umformatieren kann:

const formatedNum = numeral("4,250,000.40").format('0,0.00'); 
console.log(formatedNum); // "4,250,000.40" 

Hier ist ein funktionierendes Beispiel, darunter kühlere Formatierung:

const num = numeral("4,250,000.40"); 
 
const formatedNum = num.format('0,0[.]00'); 
 
console.log(formatedNum); // "4,250,000.40" 
 
// you can format number as money 
 
console.log(num.format('$0,0[.]00')); // $4,250,000.40 
 
// you can use abbreviations like k or m 
 
console.log(num.format('$0.00a')); // $4.25m 
 
// you can use financial notation 
 
console.log(numeral("-4,250,000.40").format('($0,0)')); // ($4,250,000)
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/2.0.6/numeral.min.js"></script>

Verwandte Themen