这是我的代码,我在TypeScript中实现一个简单的计算器。这里的问题是所有操作都正常工作,除了添加而不是添加,执行数字连接。
HTML CODE:
<input type="text" [(ngModel)]="n1" />
<input type="text" [(ngModel)]="n2" />
<h1>Number 1 : {{n1}}</h1>
<h1>Number 2 : {{n2}}</h1>
<select (change)="handle(selectField.value);" #selectField>
<option value="addition">Addition</option>
<option value="subtraction">Subtraction</option>
<option value="multiply">Multiplication</option>
<option value="divide">Division</option>
</select>
<h1>Result = {{result}}</h1>
我的角色代码如下:
import {
Component,
OnInit
} from '@angular/core';
@Component({
selector: 'app-home',
templateUrl: './home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
n1: number = 0;
n2: number = 0;
result: number = 0;
handle(value: string) {
if (value == "addition") {
this.result = this.n1 + this.n2;
} else if (value == "subtraction") {
this.result = this.n1 - this.n2;
} else if (value == "multiply") {
this.result = this.n1 * this.n2;
} else if (value == "divide") {
this.result = this.n1 / this.n2;
}
}
constructor() {}
ngOnInit() {
}
}
我已将n1
和n2
都声明为数字,结果也是数字。那么为什么数字被视为字符串而不是整数呢?
注意:我在类似问题上经历过其他一些Stack Overflow帖子,但无法找到可能的解决方案。
请帮忙!
答案 0 :(得分:1)
你可以解决它。 this.result =(+ this.n1)+(+ this.n2);
答案 1 :(得分:1)
HTML输入中的任何值都是自动字符串。要解决此问题,您必须将输入值转换/转换为数字。 (+ this.n1)黑客做到了,但要真正做到正确,你应该投射或转换你的价值。
this.result = parseInt(this.n1) + parseInt(this.n2);
这只是一种方式。还有其他几个。