Angular2如何舍入数字

Lea*_*Lea 0 pipe angular

嗨,我想把我计算的数字四舍五入到千位.

例如,如果我得到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);
    }
}
Run Code Online (Sandbox Code Playgroud)

似乎没有用

任何的想法?

小智 5

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

{{value | round:4}}
Run Code Online (Sandbox Code Playgroud)

在参数列表中选择它 transform

transform(value: number, digits: number): number {
Run Code Online (Sandbox Code Playgroud)

然后在管道逻辑中进行正确的计算,这就像是

Math.round(value / (10 ** digits)) * (10 ** digits)
Run Code Online (Sandbox Code Playgroud)