我有一个要求,我必须使用ts中的十进制管道来转换数字
代替像这样使用十进制管道
<td>{{rmanFmvRulesDef.max | number :'1.2-2'}}</td>
我想从组件中进行操作,有人可以帮助我吗?
谢谢
答案 0 :(得分:4)
像往常一样,您可以依靠DI。您可以在ts中覆盖转换功能。
import { DecimalPipe } from '@angular/common';
class MyService {
constructor(private _decimalPipe: DecimalPipe) {
}
transformDecimal(num) {
return this._decimalPipe.transform(num, '1-2.2');
}
}
在提供程序数组中添加DecimalPipe,否则将给出错误
providers: [DecimalPipe,...]
答案 1 :(得分:2)
您可以在 Stackblitz
上看到示例只需致电:element.price = format.formatCurrency(element.price);
一旦您定义了助手。您可以通过以下方式定义:
以<h2 *ngFor="let item of item">{{ item.price }}</h2>
为例。
组件:
import { accounting } from 'accounting';
export function formatCurrency(value) {
return accounting.formatMoney(value, '', 0, ' ', '.');
}
export function unformatCurrency(value) {
return accounting.unformat(value);
}
注意:return accounting.formatMoney(value, '', 0, ' ', '.');
可以使用您想要的' '
或空格分隔器更改.
和,
。对于小数点后的数字,您可以将0
数字更新为所需的位数。
答案 2 :(得分:1)
您还可以使用formatNumber函数(DecimalPipe在后台使用它)。无需处理DI或将任何内容添加到provider数组。