角度2 如何对数字进行舍入



嗨,我正在尝试将我计算的数字四舍五入到千位。

例如,如果我得到 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);
}
}

似乎不起作用

知道吗?

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

{{value | round:4}}

在参数列表中选取它以transform

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

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

如下所示
Math.round(value / (10 ** digits)) * (10 ** digits)

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

var toNearest = 10000;
var mod = value % toNearest;
return mod < toNearest/2 ? 
value - mod :             //round down
value + (toNearest-mod);  //round up
Try this =====
import {Pipe} from '@angular/core';
@Pipe({name: 'round'})
export class RoundPipe {
transform (input:number) {
return Math.round(input);
}
}

最新更新