我有如下输入。您可以看到它将budget
numeric
属性转换为数千个分隔符(例如1,000
)。
<ion-input [ngModel]="project.budget | thousandsSeparatorPipe"
(ngModelChange)="project.budget=$event;calculateContingency()"
formControlName="budget" type="text"></ion-input>
这里不起作用:
calculateContingency(eve:any) {
this.project.contingency = ((Number(this.project.budget) * this.project.contingencyPercentage) * 1 / 100);
this.changeDetectorRef.detectChanges();
}
它显示如下:
你可以告诉我如何解决这个问题吗?或者如何在没有千位分隔符的情况下使用budget
模型?如果我能得到它,那么我可以将它发送到上面的计算方法编号
答案 0 :(得分:1)
将 parseFloat
与正则表达式一起使用以替换逗号,
this.project.contingency = ((parseFloat(this.project.budget.replace(/,/g, '')) * this.project.contingencyPercentage) * 1 / 100);
<强>样本强>
var budget = '1,000';
var buget2 = 1000;
var contigency = parseFloat(budget.replace(/,/g, '')) + buget2;
console.log(contigency);
答案 1 :(得分:0)
在尝试将其转换为Number之前,您只需从字符串中删除“,”即可。
只需使用STRING.replace(',','')
。应该像魅力一样工作。
例如:
calculateContingency(eve:any) {
this.project.contingency = ((Number(this.project.budget.replace(',','')) * this.project.contingencyPercentage) * 1 / 100);
this.changeDetectorRef.detectChanges();
}