Javascript 计算器的百分比函数失败
我需要一台计算器的专家帮助。它是js的angular,所以没有typescript,但它运行并给我一个计算器。但是,百分比函数仅适用于100以下的数字。如果我做900的4%,我得到0.44。但如果我做了100分之10,我得到10分 请帮忙Javascript 计算器的百分比函数失败,javascript,string,floating-point,ecmascript-6,Javascript,String,Floating Point,Ecmascript 6,我需要一台计算器的专家帮助。它是js的angular,所以没有typescript,但它运行并给我一个计算器。但是,百分比函数仅适用于100以下的数字。如果我做900的4%,我得到0.44。但如果我做了100分之10,我得到10分 请帮忙 export class CalculatorComponent { private runningTotal = 0; private previousTotal = 0; private currentOperator = null; number
export class CalculatorComponent {
private runningTotal = 0;
private previousTotal = 0;
private currentOperator = null;
numberButtonClick(event) {
this.runningTotal = parseFloat('' + this.runningTotal + event.target.value);
console.log(this.runningTotal)
}
changeSettings(operator) {
this.previousTotal = this.runningTotal;
this.runningTotal = 0;
this.currentOperator = operator;
console.log(this.currentOperator);
}
operativeButtonClick(event) {
let operator = event.target.innerHTML;
switch (operator) {
case '=':
this.makeCalculation();
break;
case '+':
this.changeSettings(operator);
break;
case '-':
this.changeSettings(operator);
break;
case '*':
this.changeSettings(operator);
break;
case '/':
this.changeSettings(operator);
break;
case '%':
this.changeSettings(operator);
break;
case 'AC':
this.runningTotal = 0;
this.newTotal = true;
break;
case '.':
this.runningTotal += ('' + '.');
break;
}
}
makeCalculation() {
switch (this.currentOperator) {
case '+':
this.runningTotal += this.previousTotal;
break;
case '-':
this.runningTotal = this.previousTotal - this.runningTotal;
break;
case '*':
this.runningTotal *= this.previousTotal;
break;
case '/':
this.runningTotal = this.previousTotal / this.runningTotal;
break;
case '%':
this.runningTotal = ((this.previousTotal / this.runningTotal) * 100).toFixed(2);
console.log(this.previousTotal)
break;
}
}
}创建一个可工作的Plunk。它不应该是这个..previousTotal*this.runnigTotal/100。你计算出的4是900woops的0.44%。。。。不过我没有橡皮鸭可以说话。谢谢图罗,你完全正确。