js 金额用,隔开(千分位加逗号) 例如 100,222.123

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js 金额用,隔开(千分位加逗号) 例如 100,222.123相关的知识,希望对你有一定的参考价值。

参考技术A numFormat(num)

        var c = (num.toString().indexOf ('.') !== -1) ? num.toLocaleString() : num.toString().replace(/(\d)(?=(?:\d3)+$)/g, '$1,');

        return c;

   

console.log(this.numFormat(20181029.120))

//格式化钱数,三位加一逗号

function toThousands(number)

number = number +"";

number = number.replace(/\,/g, "");

if(isNaN(number) || number == "")return "";

number = Math.round(number * 100) / 100;

    if (number < 0)

        return '-' + outputdollars(Math.floor(Math.abs(number) - 0) + '') + outputcents(Math.abs(number) - 0);

    else

        return outputdollars(Math.floor(number - 0) + '') + outputcents(number - 0);



//格式化金额

function outputdollars(number)

    if (number.length <= 3)

        return (number == '' ? '0' : number);

    else

        var mod = number.length % 3;

        var output = (mod == 0 ? '' : (number.substring(0, mod)));

        for (i = 0; i < Math.floor(number.length / 3); i++)

            if ((mod == 0) && (i == 0))

                output += number.substring(mod + 3 * i, mod + 3 * i + 3);

            else

                output += ',' + number.substring(mod + 3 * i, mod + 3 * i + 3);

       

        return (output);

   



function outputcents(amount)

    amount = Math.round(((amount) - Math.floor(amount)) * 100);

    return (amount < 10 ? '.0' + amount : '.' + amount);

angular6之pipe管道

作为前端开发人员,我们在网站开发时,需要读取后端的接口进行视图层的数据展示。我们经常会遇到接口给予我们的值不是最终展现的数据,例如:后端返回的金额是number类型额数据,我们需要遇到千分位用逗号隔开(10000 -> 10,000),重量10000g转成10kg等,这些需要前端把数据进行简单的转换成对用户友好的格式。在angular6中pipe便发挥这样的作用,熟悉vue的同学会感觉非常类似vue中的computed计算属性。

下面介绍angular6中pipe的具体用法

1、ng g pipe <pipe名称>

pipe名称可以带有路径,如pipes/pipename 这样就会在src/app目录生成pipes目录,并在齐目录下生成文件pipename.pipe.ts

2、pipe文件中的代码

(1)、引入相应模块

import { Pipe, PipeTransform } from ‘@angular/core‘;
(2)、声明pipe
@Pipe({
  name: ‘weightChange‘
})
name值为代码中需要用到的对应管道的名称
声明pipe时还有另外一个属性pure,接受bool值,用来声明是不是纯管道,默认情况下是纯管道,那么纯管道和非纯管道有什么区别呢?
管道中纯管道和非纯管道之间的区别关键在于:
如果是纯管道,他检测的深读很低,比如检测一个对象数组,对象数组中的对象的某个属性发生变化的时候,纯管道是检测不到的,这时候就需要用到非纯管道。
但是要注意非纯管道对性能影响较大。具体可以参考https://angular.cn/guide/pipes 官方解释。
(3)、pipe类
export class weightChangePipe implements PipeTransform {
  transform(value: any, args?: any): any {
    return value&&value>1000?value/1000+‘kg‘:value+‘g‘;
  }
}
transform方法将原始数据作为参数,方法中的具体代码是将原始值转化成最终值,以上代码是将大于1000g的值转成kg单位的例子
(4)、将改管道在angular的模块中进行声明
@NgModule({
  declarations: [
    ........
    TimechangePipe,
    ......
  ]
})
这样就可以在具体的代码中直接使用了
例如在代码中:
<span>{{ riceWeight | weightChange }}<span>
 
angular中引入了概念比如service, directive,pipe等将一些公共的代码从业务代码中抽离,其最终目的就是解耦,降低代码的耦合度。通过他的框架可以更好的管理应用程序。
 
 

 

以上是关于js 金额用,隔开(千分位加逗号) 例如 100,222.123的主要内容,如果未能解决你的问题,请参考以下文章

js千分位用逗号隔开,全保留小数点后面的数字

添加数字千分位逗号正则分析

js金额数字格式化实现代码(三位加逗号处理保留两位置小数)

将1234567890转换成1,234,567,890 每3位用逗号隔开的形式 PHP千分位

angular6之pipe管道

JS格式化数字(每三位加逗号)