字符串到数字转换不起作用

时间:2017-09-10 13:12:55

标签: javascript angular typescript ionic3

我有如下输入。您可以看到它将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();
  }

它显示如下:

enter image description here

你可以告诉我如何解决这个问题吗?或者如何在没有千位分隔符的情况下使用budget模型?如果我能得到它,那么我可以将它发送到上面的计算方法编号

2 个答案:

答案 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();
  }