public void Count() { double[] numbers = new double[2]; try { string[] sNumbers = OutputValue.Split(usedOparator); if (OutputValue.Contains("E" + usedOparator)) { //mamy do czynienia z notacją wykładniczą dodatnią, a wiec dwa razy '+' lub '-' na wejściu sNumbers[0] += usedOparator + sNumbers[1]; sNumbers[1] = sNumbers[2]; } if (sNumbers[0] == "" || sNumbers[1] == "" || sNumbers.Count() < 2) { return; } numbers[0] = Convert.ToDouble(sNumbers[0]); numbers[1] = Convert.ToDouble(sNumbers[1]); } catch { return; } double solution = 0; //rozpocznij liczenie try { switch (usedOparator) { case '+': solution = numbers[0] + numbers[1]; break; case '-': solution = numbers[0] - numbers[1]; break; case '*': solution = numbers[0] * numbers[1]; break; case '➗': if (numbers[1] == 0) { ThrowError(); return; } solution = numbers[0] / numbers[1]; break; } // OutputValue = ((decimal)solution).ToString(); OutputValue = solution.ToString(); } catch { ThrowError(); //w razie gdyby z jakiegoś dziwnego powodu sobie nie poradził z liczeniem return; } separatorsPlacedAfterOperator = 0; if (OutputValue.Contains(currentSeparator)) { separatorsPlacedBeforeOperator = 1; //jeśli wynik ma w sobie separator, informacja zostaje } else { separatorsPlacedBeforeOperator = 0; } usedOparator = ' '; }