我正在使用管道如下
{{plansItem.price | currency:' ':symbol:digitInfo}}
如果我输入的值为3900,我只想输入39.00而且我想知道如何获得最后两位数字并输入小数
答案 0 :(得分:1)
货币管道并不意味着在您的值中间放置一个小数点。它将根据指定的小数位数附加或舍入小数。
例如,
{{500.566 | currency}} => $500.57
{{3900 | currency}} => $3,900.00
如果您希望3900
为39.00
,则需要类似
{{3900 / 100 | currency}} => $39.00
或自定义管道。
答案 1 :(得分:0)
使用自定义管道
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'currencyCustom'
})
export class CurrencyCustomPipe implements PipeTransform {
transform(value: number,
currencySign: string = '€ ',
decimalLength: number = 2,
chunkDelimiter: string = '.',
decimalDelimiter: string = ',',
chunkLength: number = 3): string {
value /= 100;
const result = '\\d(?=(\\d{' + chunkLength + '})+' + (decimalLength > 0 ? '\\D' : '$') + ')';
// tslint:disable-next-line:no-bitwise
const num = value.toFixed(Math.max(0, ~~decimalLength));
return currencySign + (
decimalDelimiter ? num.replace('.', decimalDelimiter) : num
)
.replace(
new RegExp(result, 'g'),
'$&' + chunkDelimiter
);
}
}
在这样的HTML中
{{plansItem.price | currencyCustom:' ':2:'.':','}}