Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 计算器的百分比函数失败_Javascript_String_Floating Point_Ecmascript 6 - Fatal编程技术网

Javascript 计算器的百分比函数失败

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

我需要一台计算器的专家帮助。它是js的angular,所以没有typescript,但它运行并给我一个计算器。但是,百分比函数仅适用于100以下的数字。如果我做900的4%,我得到0.44。但如果我做了100分之10,我得到10分

请帮忙

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%。。。。不过我没有橡皮鸭可以说话。谢谢图罗,你完全正确。