数字管道 0 或 2 位小数
Number pipe either 0 or 2 decimal places
我想实现数字格式,如果数字是圆的,则不应有小数占位符 .00
,否则使用 2 位且仅保留 2 位小数。例如:
1.23 -> 1.23
1.23456 -> 1.24
1.2 -> 1.20
1.0 -> 1
1 -> 1
根据文档,您只能指定小数位的范围(例如|number:'.0-2'
),而不能指定具体的选择(例如|number:'.0,2'
);我说得对还是有办法?
我知道我可以用一些 *ngIf
-s 实现同样的效果,但如果可能的话我想避免。
如果你想对你的变量做不止一件事,最好的做法是创建两个不同的管道并将它们一起使用。重要的是从左到右的顺序。如果你只想显示两位数字,你可以使用内置管道,如 deicmalPipe:
Angular Doc
或者只是检查该主题:
如果您想显示 1 而不是 1.00,您可以创建自定义管道,它会在其中检查字符是 00 还是其他。如果它是 00,它 return 没有这些数字的数字。
要显示 1 而不是 1.0,您可以试试这个。
{{x | number:'1.0-0'}}
您可以像这样创建自己的 DecimalPipe:
@Pipe({ name: 'number' })
export class MyCurrencyPipe implements PipeTransform {
constructor(
private decimalPipe : DecimalPipe,
) {
}
transform(value: any, digitsInfo?: string, locale?: string): string | null {
let result;
result = this.decimalPipe.transform(value, digitsInfo, locale);
// …do something with your result
return result;
}
}
如果你有这个你可以
- 向 transform() 方法添加一个
removeTrailingZeros? : boolean
。
或
- 让 transform() 理解
digitsInfo
就像 '1.0,2'
并且不要忘记将 MyDecimalPipe
添加到模块的提供程序中,以确保您的模板在编写 {{ foo | number:'1.0,2' }}
时使用 MyDecimalPipe
而不是角度 DecimalPipe
。
我想实现数字格式,如果数字是圆的,则不应有小数占位符 .00
,否则使用 2 位且仅保留 2 位小数。例如:
1.23 -> 1.23
1.23456 -> 1.24
1.2 -> 1.20
1.0 -> 1
1 -> 1
根据文档,您只能指定小数位的范围(例如|number:'.0-2'
),而不能指定具体的选择(例如|number:'.0,2'
);我说得对还是有办法?
我知道我可以用一些 *ngIf
-s 实现同样的效果,但如果可能的话我想避免。
如果你想对你的变量做不止一件事,最好的做法是创建两个不同的管道并将它们一起使用。重要的是从左到右的顺序。如果你只想显示两位数字,你可以使用内置管道,如 deicmalPipe:
Angular Doc
或者只是检查该主题:
如果您想显示 1 而不是 1.00,您可以创建自定义管道,它会在其中检查字符是 00 还是其他。如果它是 00,它 return 没有这些数字的数字。
要显示 1 而不是 1.0,您可以试试这个。
{{x | number:'1.0-0'}}
您可以像这样创建自己的 DecimalPipe:
@Pipe({ name: 'number' })
export class MyCurrencyPipe implements PipeTransform {
constructor(
private decimalPipe : DecimalPipe,
) {
}
transform(value: any, digitsInfo?: string, locale?: string): string | null {
let result;
result = this.decimalPipe.transform(value, digitsInfo, locale);
// …do something with your result
return result;
}
}
如果你有这个你可以
- 向 transform() 方法添加一个
removeTrailingZeros? : boolean
。
或
- 让 transform() 理解
digitsInfo
就像'1.0,2'
并且不要忘记将 MyDecimalPipe
添加到模块的提供程序中,以确保您的模板在编写 {{ foo | number:'1.0,2' }}
时使用 MyDecimalPipe
而不是角度 DecimalPipe
。