diff options
1 files changed, 15 insertions, 9 deletions
| -rw-r--r-- | src/Models/CellFormula.cpp | 24 |
diff --git a/src/Models/CellFormula.cpp b/src/Models/CellFormula.cpp index 09883c2..3029a19 100644 --- a/src/Models/CellFormula.cpp +++ b/src/Models/CellFormula.cpp @@ -11,18 +11,22 @@ double CellFormula::calculate(unsigned index) { if (formula[index].right & branch) { switch (formula[index++].right & !branch) { - case plus: lval += formula[index].left->getNumeralValue(); break; + case plus : lval += formula[index].left->getNumeralValue(); break; + case minus : lval -= formula[index].left->getNumeralValue(); break; + case mult : lval *= formula[index].left->getNumeralValue(); break; + case div : lval /= formula[index].left->getNumeralValue(); break; + // case pow : lval += formula[index].left->getNumeralValue(); break; } } switch(formula[index].right) { - case plus: return lval + calculate(index++); - case minus: return lval - calculate(index++); - case mult: return lval * calculate(index++); - case div: return lval / calculate(index++); - case pow: - case none: - default: return lval; + case plus : return lval + calculate(index++); + case minus : return lval - calculate(index++); + case mult : return lval * calculate(index++); + case div : return lval / calculate(index++); + case pow : + case none : + default : return lval; } } @@ -31,7 +35,9 @@ String CellFormula::getValueForPrint() { } void CellFormula::parseAndSetValue(const char* str) { - + str++; + while (*str == ' ') str++; + double number = atof(str); } void CellFormula::readFromFile(std::ifstream& file) { |
