Angular 2 - 如何计算轮数?

Angular 2 - how round calculated number?

我有一个 *ngFor 循环并想计算一个值 - 小数点后两位。

计算有效:

 {{ ((date | amDifference : item.startdate : 'minutes' :true)/item.duration*100)  }}

可是我怎么舍入呢?我这样试过:

 {{ num | ((date | amDifference : item.startdate : 'minutes' :true)/item.duration*100) : '1.2-2' }}

但这会造成错误:

zone.js:355 未处理的承诺拒绝:模板解析错误: 解析器错误:意外的标记 (,预期的标识符或关键字在第 8 列 [ {{ 数 | ((date | amDifference : item.startdate : 'minutes' :true)/item.duration*100) : '1.2-2' }}

你需要另一个管道来做这个

import {Pipe} from 'angular2/core';

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

模板:

{{ date | amDifference : item.startdate : 'minutes' : true | round }}

如果其货币 {{value | currency:'INR':true: '1.0-0'}}

如果只需要 NUMBER {{value | number:'1.0-0'}}

1.0-0表示:小数点前至少一位,小数点后0位。

https://angular.io/api/common/DecimalPipe

可以使用 angular 内置管道,例如 number

{{value | number:'1.0-0'}}

如果想要实现它:

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

在模板中使用

{{1,1 | round}} => 1
{{2,1 | round}} => 2

另一个有用的管道是第 10 轮:

@Pipe({name: 'roundTen'})
export class RoundTenPipe implements PipeTransform {
  transform(value: number): number {
    return Math.round(value / 10) * 10;
  }
}

在模板中使用

{{11 | roundTen}} => 10
{{21 | roundTen}} => 20