angular - 带 EUR 角管的格式编号
问题描述
我需要以这种方式格式化一个数字:
10,00
1.000,67
1,78
(整数部分可以有未定义的位数,而小数部分必须等于 2)
所以假设做这个html
<input type="number" class="form-control" [ngModel]="money| toNumber " name="money" required (ngModelChange)="money= $event"
我使用这个管道:
@Pipe({
name: 'toNumber'
})
export class ToNumberPipe implements PipeTransform {
transform(value: number | string, locale?: string): string {
return new Intl.NumberFormat(locale, {
minimumFractionDigits: 2
}).format(Number(value));
}
}
我刚刚在我的代码的另一部分中使用了这个管道,它按照我想要的方式格式化了数字,但是在这种情况下,当我把这个管道放在我的 html 代码中时,输入类型数字字段为空,我收到以下消息:
指定的值“4,00”不是有效数字。该值必须与以下正则表达式匹配:-?(\d+|\d+.\d+|.\d+)([eE][-+]?\d+)?
解决方案
由于您无法使用 将带有分号的字符串解析为数字Number()
,因此您可以在此处执行的选项是使用parseInt()
而不是Number()
@Pipe({
name: 'toNumber'
})
export class ToNumberPipe implements PipeTransform {
transform(value: number | string, locale?: string): string {
return new Intl.NumberFormat(locale, {
minimumFractionDigits: 2
}).format(parseInt(value as string, 10));
}
}
推荐阅读
- python - 在centos7中安装pgadmin4时遇到import builtins ImportError?
- synchronization - 如何使用初始化为 1 的信号量同步进程?
- php - 使用登录和仪表板验证用户 - Lumen
- xamarin - Xamarin Forms Shell 工具栏高度
- javascript - 如何添加两个数字并存储在数组中,然后使用javascript将前一个数字添加到最新数字
- php - 在 PHP 中将数组键和值转换为字符串
- wordpress - 如何在 bbpress 中通过用户 ID 获取主题?
- android - 颤动不播放音频
- python - 如何使用 Selenium 和 Python 获取具有动态 id 的表
- phpstorm - PhpStorm ToDo 无法在 Mac OSX 10.15 上运行