analyser flotteur avec deux décimales,
c'est l'entrée
<input type="text" name="price" class="solo-numeros">
avec cette fonction
$(".solo-numeros").blur(function() {
var numb = parseFloat($(this).val().replace(/\D/g,"")).toFixed(2);
$(this).val(numb);
});
j'ai essayer de changer le résultat de l'entrée pour un flotteur avec deux décimales
j'ai donc essayer
555.61
mais sur le flou de la variation de la valeur de
55561.00
pourquoi est-ce????
- Vous enlevez le séparateur décimal avec .remplacer...
Vous devez vous connecter pour publier un commentaire.
Cela se produit parce que vous êtes en train de retirer des caractères non numériques (
\D
), comme une période. Donc"55.61"
devient"5561"
, qui est ensuite transformé en un deux-chaîne décimale-représentation d'un flotteur, d'où"5561.00"
Références:
String.replace()
.Nombre.toFixed()
.$(this).val().replace(/\D/g,"")
cette partie remplace la virgule.
dans votre numéro,555.61
, il est un entier ayant une valeur55561
, puistoFixed()
rend55561.00
. Solution pourrait être d'utiliserEssayez de remplacer la ligne où vous calculer engourdi par celui-ci:
À l'aide de cette fonction:
\D
remplace tout non caractères..
n'est pas un chiffre, c'est en cours de suppression. Utilisation[^\d\.]
au lieu de cela, ce qui signifie "n'importe quel caractère qui n'est pas un chiffre, et pas le personnage.
.De sortie:
Vous remplacez tous les chiffres dans la chaîne qui va vous donner "55561" à partir de "555.61" (la période est remplacé par votre regex pour remplacer appel). Ce tour est évalué à 55561.00 par le toFixed() la méthode.
D'essayer d'analyser une option de période dans votre regex quelque chose comme (non testé)