Maison >interface Web >js tutoriel >Javascript convertit les valeurs numériques au format montant (séparant les millièmes et ajoutant automatiquement des points décimaux)

Javascript convertit les valeurs numériques au format montant (séparant les millièmes et ajoutant automatiquement des points décimaux)

高洛峰
高洛峰original
2017-01-09 14:37:531414parcourir

Dans le projet, j'ai rencontré le besoin de convertir un nombre similaire à « 450000 » dans le format utilisé pour la comptabilité, « 450,000.00 ». Lorsqu'il n'y a pas assez de deux chiffres après avoir séparé la millième place et la virgule décimale, cela le fera. être automatiquement renseigné. Plusieurs types ont été enregistrés. Méthode de mise en œuvre

ps : Si vous ne tenez pas compte du point décimal à la fin, le moyen le plus rapide est :

"12345678".remplacer. (/[0-9] ?(?=(?:([ 0-9]{3})) $)/g,function(a){return a ','}); //Sortie 12 345 678

1. Utilisez une boucle pour implémenter

function formatNum(str){
 var newStr = "";
 var count = 0;
 
 if(str.indexOf(".")==-1){
  for(var i=str.length-1;i>=0;i--){
   if(count % 3 == 0 && count != 0){
    newStr = str.charAt(i) + "," + newStr;
   }else{
    newStr = str.charAt(i) + newStr;
   }
   count++;
  }
  str = newStr + ".00"; //自动补小数点后两位
  console.log(str)
 }
 else
 {
  for(var i = str.indexOf(".")-1;i>=0;i--){
   if(count % 3 == 0 && count != 0){
    newStr = str.charAt(i) + "," + newStr; //碰到3的倍数则加上“,”号
   }else{
    newStr = str.charAt(i) + newStr; //逐个字符相接起来
   }
   count++;
  }
  str = newStr + (str + "00").substr((str + "00").indexOf("."),3);
  console.log(str)
 }
}
 
formatNum('13213.24'); //输出13,213.34
formatNum('132134.2'); //输出132,134.20
formatNum('132134'); //输出132,134.00
formatNum('132134.236'); //输出132,134.236

 

2. Utilisez des règles régulières (l'inconvénient est que vous devez toujours juger le nombre. de chiffres après la virgule décimale. Veuillez m'informer si vous avez une règle régulière plus intelligente ~)

function regexNum(str){
 var regex = /(\d)(?=(\d\d\d)+(?!\d))/g;
 
 if(str.indexOf(".") == -1){
 
  str= str.replace(regex,',') + '.00';
  console.log(str)
 
 }else{
  var newStr = str.split('.');
  var str_2 = newStr[0].replace(regex,',');
 
  if(newStr[1].length <= 1){
   //小数点后只有一位时
   str_2 = str_2 + &#39;.&#39; + newStr[1] +&#39;0&#39;;
   console.log(str_2)
 
  }else if(newStr[1].length > 1){
   //小数点后两位以上时
   var decimals = newStr[1].substr(0,2);
   var srt_3 = str_2 + &#39;.&#39; + decimals;
   console.log(srt_3)
  }
 }
};
regexNum(&#39;23424224&#39;); //输出2,42,224.00
regexNum(&#39;23424224.2&#39;); //输出2,42,224.20
regexNum(&#39;23424224.22&#39;); //输出2,42,224.22
regexNum(&#39;23424224.233&#39;); //输出2,42,224.23

Ce qui précède représente l'intégralité du contenu de cet article. .Pour en savoir plus sur la syntaxe JavaScript, j'espère que tout le monde prendra en charge le site Web PHP chinois.

Pour plus de Javascript permettant de convertir des valeurs numériques au format de montant (séparation des millièmes et ajout automatique de points décimaux), veuillez faire attention au site Web PHP chinois pour les articles connexes !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn