couper les décimales inutilisées avec javascript
J'ai une monnaie d'entrée et la nécessité de retourner uniquement de chiffres significatifs. L'entrée a toujours deux décimales, donc:
4.00 -> 4
4.10 -> 4.1
4.01 -> 4.01
Voici comment je suis en train de le faire:
//chop off unnecessary decimals
if (val.charAt(val.length-1) == '0') { //xx.00
val = val.substr(0, val.length-1);
}
if (val.charAt(val.length-1) == '0') { //xx.0
val = val.substr(0, val.length-1);
}
if (val.charAt(val.length-1) == '.') { //xx.
val = val.substr(0, val.length-1);
}
qui fonctionne, et a une certaine franc-parler que j'aime, mais peut-être qu'il y a de plus joli.
Je suppose que je pourrais utiliser une boucle et courir à travers elle à trois reprises, mais qui semble en fait comme il y en a au moins volumineux, le temps que je conditionner l'instruction if. Autre que cela, des idées? J'imagine qu'il y a une regex façon de le faire, trop....
source d'informationauteur sprugman
Vous devez vous connecter pour publier un commentaire.
Je crois parseFloat().
Votre code aussi côtelettes hors des zéros dans les chiffres comme "1000". Une meilleure variante serait de seulement chop de zéros qui sont après le point décimal. La base de remplacement avec des expressions régulières ressemblerait à ceci:
Si vous êtes débutant avec une chaîne et que vous voulez une chaîne de résultat, est-ce que le droit?
Qui devrait fonctionner. La plus laconique
ou
marcherait aussi bien, mais que la forme est trop difficile à comprendre.
Comment fonctionnent-ils? Ils permettent de convertir la chaîne de caractères à un numéro, puis de retour à une chaîne. Vous ne voulez pas utiliser ces, mais de savoir comment le JavaScript conversions de travail va vous aider à déboguer tout ce que vous faites.
Je pense que c'est ce que vous voulez
et vous avez
parseFloat fonctionne, mais vous avez la lancer en une chaîne de caractères.
Je suis en train d'essayer de trouver une solution comme ça, maintenant. C'est comment je suis arrivé ici.
J'ai utilisé la fonction Number() pour mon application, mais on dirait que ça marche comme parseFloat()
http://jsfiddle.net/4WN5y/
- Je supprimer les virgules et avant de vérifier le nombre.