J'utilise la fonction suivante pour formater les nombres en tant que types d'utilisateurs. Il insérera une virgule tous les 3 chiffres. Ex: 45696.36
devient 45,696.36
.
Cependant, j'ai rencontré un problème avec cela. Si les nombres après la virgule sont supérieurs à 3 chiffres, il commence à leur ajouter des virgules. Ex: 1136.6696
devient 1,136.6,696
.
Ceci est ma fonction:
$.fn.digits = function(){
return this.each(function() {
$(this).val( $(this).val().replace(/[^0-9.-]/g, '') );
$(this).val( $(this).val().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,") );
})
}
Comment puis-je résoudre ce problème afin qu'il cesse de placer des virgules après la décimale? J'utilise jQuery 1.8. Merci!
Pour ce faire, vous pouvez diviser votre chaîne en caractères '.
', puis effectuer votre conversion par virgule sur la première section uniquement, en tant que tel:
function ReplaceNumberWithCommas(yourNumber) {
//Seperates the components of the number
var n= yourNumber.toString().split(".");
//Comma-fies the first part
n[0] = n[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
//Combines the two sections
return n.join(".");
}
ReplaceNumberWithCommas(1136.6696); //yields 1,136.6696
J'utilise accounting.js lib:
accounting.format(1136.6696, 4) // 1,136.6696