javascript / typescript / angular中的逗号分隔符

时间:2019-07-10 05:40:09

标签: javascript angular typescript

“大家好!我对如何格式化一些数字有疑问。例如,我希望将数字33304转换为333,04,将数字108100转换为1081,00。规则是在后保留两位小数逗号分隔符。我尝试使用javascript格式函数,但找不到正确的解决方案。 您能帮我个忙吗?

3 个答案:

答案 0 :(得分:3)

仅使用JavaScript或TypeScript,您可以编写:

function format(n) {
  (n / 100).toFixed(2).replace('.', ',');
}

示例:

num(33304) === '333,04';
num(108100) === '1081,00';
num(101) === '1,01';
num(50) === '0,50';
num(1) === '0,01';
num(0) === '0,00';

答案 1 :(得分:0)

您可以使用数字格式设置方法:

function formatNumber(num) {
      return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,')
    }

    console.info(formatNumber(2665)) // 2,665
    console.info(formatNumber(102665)) // 102,665
    console.info(formatNumber(111102665)) // 111,102,665

来源

https://blog.abelotech.com/posts/number-currency-formatting-javascript/

使用以下内容:

var str="33304";

var resStr=str.substring(0,str.length-2)+","+str.substring(str.length-2);

console.log(resStr);

答案 2 :(得分:0)

使用自定义管道可以实现此转换。参见下面的示例:-

//Component 

import {Component} from '@angular/core';

@Component({
  'selector' : 'app-sample' ,
   template : '  <p>  Number   {{sampleValue | convertPipe}} '
})

export class SampleComponent{
  public sampleValue = 33300;

}

// custom Pipe

 import {Pipe} from '@angular/core'; 

 @Pipe(
   {name: 'convertPipe'}
   )
 export class ConvertPipe{
   transform(value: number){
       let temp1 , temp2 , returnValue;
       temp1 = value/100;
       temp2 = value%100;

       if(temp2 != 0){
          returnValue = temp1 + ',' +temp2;
       } else{
             returnValue = temp1 + ',00';
        }
     return returnValue;    
   }
  } 

希望这会有所帮助。