您好我正在尝试将我计算的数字四舍五入到其他地方。
例如,如果我得到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);
}
}
似乎无法正常工作
有什么想法吗?
答案 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);
}
}