999.12345678901可以工作,但>= 1000的值为NaN (控制台中的警告),并将输入设置为0。我在input的onBlur中使用了这个管道。
@Pipe({
name: 'rExact'
})
export class rExactPipe extends DecimalPipe {
transform(value: number): any {
if(isNaN(value))
return null;
return super.transform(value, "1.2-11");
}
}这是onblur事件:
this.selected.UnitPrice = +new rExactPipe(this.numberLocale).transform(this.selected.UnitPrice);输入数字字段的绑定方式如下:(ngModel)="selected.UnitPrice“
因为js是64位的,所以所有的数字都应该工作到15位浮点数。我做错了什么?
发布于 2019-03-24 01:43:12
问题是DecimalPipe在几千个数字之后添加了数字符号,像这里的1,000,在你的代码中,这个小的加号+new将结果转换回数字。这个逗号使其无法解析,因此得到的结果是NaN。要修复视图的问题,只需删除加号,如果需要值,可以不使用竖线
https://stackoverflow.com/questions/55315977
复制相似问题