Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Models / CellFormula.cpp
diff options
context:
space:
mode:
1 files changed, 15 insertions, 9 deletions
-rw-r--r--src/Models/CellFormula.cpp24
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) {