Heim  >  Artikel  >  Web-Frontend  >  Javascript konvertiert numerische Werte in das Betragsformat (trennt Tausendstel und fügt automatisch Dezimalpunkte hinzu).

Javascript konvertiert numerische Werte in das Betragsformat (trennt Tausendstel und fügt automatisch Dezimalpunkte hinzu).

高洛峰
高洛峰Original
2017-01-09 14:37:531372Durchsuche

Im Projekt bin ich auf die Notwendigkeit gestoßen, eine Zahl ähnlich „450.000“ in das für die Buchhaltung verwendete Format „450.000,00“ umzuwandeln, wenn nach der Trennung der Tausendstelstelle und dem Dezimalpunkt nicht genügend zwei Ziffern vorhanden sind Es wurden mehrere Typen erfasst.

ps: Wenn Sie den Dezimalpunkt am Ende nicht berücksichtigen, ist der schnellste Weg:

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

1. Verwenden Sie eine Schleife zur Implementierung

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. Verwenden Sie reguläre Ausdrücke (der Nachteil ist, dass Sie immer noch urteilen müssen). die Anzahl der Nachkommastellen selbst. Wenn Sie einen intelligenteren regulären Ausdruck haben, informieren Sie mich bitte ~)

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

Das Obige ist der gesamte Inhalt Um in diesem Artikel mehr über die JavaScript-Syntax zu erfahren, hoffe ich, dass jeder die chinesische PHP-Website unterstützt.

Weitere Informationen zu Javascript zum Konvertieren numerischer Werte in das Betragsformat (Tausendsteltrennung und automatisches Hinzufügen von Dezimalstellen) finden Sie auf der chinesischen PHP-Website für verwandte Artikel!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn