Angular2如何舍入数字

时间:2017-07-12 01:21:24

标签: angular pipe

您好我正在尝试将我计算的数字四舍五入到其他地方。

例如,如果我得到545,000,我希望它是550,000

我创建了一个管道

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

@Pipe({name: 'round'})
export class RoundPipe implements PipeTransform {

    transform(value: number): number {
        return Math.round(value);
    }
}

似乎无法正常工作

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

你需要将另一个参数传递给管道,给出要舍入的位数,因此它将被称为

{{value | round:4}}

在参数列表中将其提取到transform

transform(value: number, digits: number): number {

然后在管道逻辑中进行正确的计算,这类似于

Math.round(value / (10 ** digits)) * (10 ** digits)

答案 1 :(得分:3)

这只是简单的舍入逻辑。如果该值小于value%1000向下舍入,否则向上舍入。

var toNearest = 10000;
var mod = value % toNearest;
return mod < toNearest/2 ? 
    value - mod :             //round down
    value + (toNearest-mod);  //round up

答案 2 :(得分:2)

Try this =====

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

@Pipe({name: 'round'})
export class RoundPipe {
  transform (input:number) {
    return Math.round(input);
  }
}