I have a *ngFor loop and want to calculate a value - with 2 decimal places.
The calculation works:
{{ ((date | amDifference : item.startdate : 'minutes' :true)/item.duration*100) }}
But how can I round? I tryed like this:
{{ num | ((date | amDifference : item.startdate : 'minutes' :true)/item.duration*100) : '1.2-2' }}
But this create error:
zone.js:355 Unhandled Promise rejection: Template parse errors: Parser Error: Unexpected token (, expected identifier or keyword at column 8 in [ {{ num | ((date | amDifference : item.startdate : 'minutes' :true)/item.duration*100) : '1.2-2' }}
One can use angular built-in pipe such as number
{{value | number:'1.0-0'}}
If one wants to have an implementation of it:
@Pipe({name: 'round'})
export class RoundPipe {
transform (input:number) {
return Math.floor(input);
}
}
Use in the template
{{1,1 | round}} => 1
{{2,1 | round}} => 2
Another useful pipe is a round ten :
@Pipe({name: 'roundTen'})
export class RoundTenPipe implements PipeTransform {
transform(value: number): number {
return Math.round(value / 10) * 10;
}
}
Use in the template
{{11 | roundTen}} => 10
{{21 | roundTen}} => 20
IF its CURRENCY {{value | currency:'INR':true: '1.0-0'}}
IF need NUMBER only {{value | number:'1.0-0'}}
1.0-0 means: at least one digit before decimal point, 0 digits after decimal point.
https://angular.io/api/common/DecimalPipe
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With