private void AccumulateDigitsWithDecimal(bool isInput, string msg) { if (isInput) { calcState = CalcState.AC_DGTS_WDCML; if (!tempNumber.Contains(",")) { tempNumber += ","; } displayMsg(tempNumber); } else { if (Rules.IsChangeSign(msg)) { if (double.Parse(tempNumber) > 0) { tempNumber = "-" + tempNumber; } else { tempNumber = tempNumber.Substring(1, tempNumber.Length - 2); } displayMsg(tempNumber); AccumulateDigits(false, " "); } if (Rules.IsDigit(msg)) { AccumulateDigits(true, msg); } else if (Rules.IsOperator(msg)) { Compute(true, msg); } else if (Rules.IsEqualSign(msg)) { Result(true, msg); } if (Rules.IsBackSpace(msg)) { tempNumber = tempNumber.Substring(0, tempNumber.Length - 2); AccumulateDigits(false, msg); } } }
private void AccumulateDigits(bool isInput, string msg) { if (isInput) { calcState = CalcState.AC_DGTS; tempNumber += msg; displayMsg(tempNumber); } else { if (Rules.IsPrimeSum(msg)) { Compute(true, msg); } if (Rules.IsChangeSign(msg)) { if (double.Parse(tempNumber) > 0) { tempNumber = "-" + tempNumber; } else { tempNumber = tempNumber.Substring(1, tempNumber.Length - 2); } displayMsg(tempNumber); AccumulateDigits(false, " "); } if (Rules.IsDigit(msg)) { AccumulateDigits(true, msg); } else if (Rules.IsOperator(msg)) { Compute(true, msg); } else if (Rules.IsEqualSign(msg)) { Result(true, msg); } if (Rules.IsSeparator(msg)) { AccumulateDigitsWithDecimal(true, msg); } if (Rules.IsBackSpace(msg)) { if (tempNumber.Length != 1) { tempNumber = tempNumber.Substring(0, tempNumber.Length - 1); displayMsg(tempNumber); AccumulateDigits(false, " "); } else { tempNumber = tempNumber.Substring(0, tempNumber.Length - 1); displayMsg("0"); AccumulateDigits(false, " "); } } } }