Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Models
diff options
context:
space:
mode:
2 files changed, 17 insertions, 11 deletions
-rw-r--r--src/Models/CellFormula.cpp24
-rw-r--r--src/Models/Table.cpp4
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) {
diff --git a/src/Models/Table.cpp b/src/Models/Table.cpp
index 5840a6e..4bdf13e 100644
--- a/src/Models/Table.cpp
+++ b/src/Models/Table.cpp
@@ -22,8 +22,8 @@ void Table::putCell(unsigned row, unsigned col, const char* rawValue) {
Cell* newCell;
if (containsNumber(rawValue)) {
- unsigned intParse = atoi(rawValue);
- unsigned doubleParse = atof(rawValue);
+ double intParse = atoi(rawValue);
+ double doubleParse = atof(rawValue);
newCell = (doubleParse - intParse > 0.00001 && doubleParse > 0.00001)
? (Cell*)new CellDouble(doubleParse) : (Cell*)new CellInt(intParse);