Comment faire pour convertir "4,250,000.40" en 4,250,000.40 qui convertit chaîne en nombre en restant les virgules et les points? using JavaScriptComment convertir une chaîne en un nombre?
Répondre
Vous pouvez utiliser parseFloat (str) pour convertir une chaîne en un nombre, mais vous devez d'abord supprimer les virgules de la chaîne, car parseFloat ne fonctionne pas pour les nombres avec des virgules.
parseFloat(str.replace(/,/g, ""));
Puis-je ajouter des virgules et des points au nombre converti plus tôt après la conversion? –
Une fois converti, il s'agit d'un nombre et non d'une chaîne. Vous ne pouvez pas ajouter de virgules aux nombres, car leur représentation dans la mémoire ne permet rien d'autre que les données relatives à la valeur du nombre. – EKW
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
Vous ne pouvez pas convertir directement "4,250,000.40"
à un certain nombre de vanille JS, et encore moins conserver des virgules. 4,250,000.40
est pas un nombre valide en JavaScript, parce qu'un comma
est un caractère illégal dans un Number
.
vous pouvez utiliser regex pour supprimer des virgules, puis utilisez Number.parseFloat()
, mais la mise en forme du numéro est perdu. Au lieu de cela, je suggère d'utiliser une bibliothèque de formatage de nombres comme Numeral.js. Pour convertir "4,250,000.40"
à un numeral
vous pouvez utiliser:
const num = numeral("4,250,000.40");
vous pouvez reformater votre numéro en utilisant la méthode format()
comme ceci:
const formatedNum = numeral("4,250,000.40").format('0,0.00');
console.log(formatedNum); // "4,250,000.40"
Voici un exemple de travail, y compris la mise en forme plus cool:
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>
Vous ne pouvez pas, comme ce que vous voulez est pas un nombre valide – adeneo
Essayez '+ « 4,250,000.40 » .replace (/ \,/g, « »)' et vous obtiendrez '4250000.4' – adeneo
merci pour votre réponse, Puis-je ajouter des virgules et des points plus anciens au nombre converti? –