嗨,我正在尝试将我计算的数字四舍五入到千位。
例如,如果我得到 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);
}
}