guys. I am trying to create a calculator in unity, but I am stuck, my calculator can receive more than two numbers, I can only do equations like "1+1", I can't to "11+1 or 11+22", the calculator won't receive it. Also, it can't accept decimal something like this "2.5 or 13.1", but it gives answers in double.
Here's the code:
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class Calculator : MonoBehaviour
{
public TextMeshProUGUI InputText;
public bool Action;
private double _result;
private double _input1;
private double _input2;
private string _operator;
## Heading ##
// Start is called before the first frame update
void Start()
{
}
public void ClickNumber(int val){
Debug.Log( message: $" check val: {val}");
InputText.text = $"{val}";
if (_input1 == 0){
_input1 = val;
}
else{
_input2 = val;
}
}
public void ClickOperator(string val){
Debug.Log( message: $" ClickOperator: {val}");
_operator = val;
}
public void ClickEqual(string val){
Debug.Log( message: $" ClickEqual: {val}");
if (_input1 != 0 && _input2 != 0 && !string.IsNullOrEmpty(_operator)){
switch (_operator){
case "+":
_result = _input1 + _input2;
break;
case "-":
_result = _input1 - _input2;
break;
case "x":
_result = _input1 * _input2;
break;
case "/":
_result = _input1 / _input2;
break;
case "%":
_result = _input2/100.0d;
Action = true;
break;
}
InputText.SetText(_result.ToString());
ClearInput();
}
}
public void ClickDecimal(string val){
Debug.Log( message: $" ClickDecimal: {val}");
InputText.text = $"{val == "."}";
}
public void ClearCalc(string val){
Debug.Log( message: $" ClearCalc: {val}");
InputText.text = $"";
}
private void ClearInput(){
_input1 = 0;
_input2 = 0;
}
}