Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Models
diff options
context:
space:
mode:
2 files changed, 4 insertions, 3 deletions
-rw-r--r--src/Models/CellFormula.cpp3
-rw-r--r--src/Models/Table.cpp4
diff --git a/src/Models/CellFormula.cpp b/src/Models/CellFormula.cpp
index ecea06d..72c2a99 100644
--- a/src/Models/CellFormula.cpp
+++ b/src/Models/CellFormula.cpp
@@ -27,7 +27,7 @@ double CellFormula::calculate(unsigned index) {
case '-' : return lval - calculate(++index);
case '*' : return lval * calculate(++index);
case '/' : return lval / calculate(++index);
- case '^' :
+ case '^' : return pow(lval, calculate(++index));
case '\0' :
default : return lval;
}
@@ -45,7 +45,6 @@ double CellFormula::getNumeralValue() {
}
String CellFormula::getValueForPrint() {
- std::cout << formula.get_count() << std::endl;
return String() += calculate();
}
diff --git a/src/Models/Table.cpp b/src/Models/Table.cpp
index 7e4a7ac..ce902f9 100644
--- a/src/Models/Table.cpp
+++ b/src/Models/Table.cpp
@@ -24,6 +24,8 @@ bool containsNumber(const char*& str) {
(*str >= '0' && *str <= '9'); // + or -, followed by digit, or it just a digit
}
+#define abs(a) ((a < 0) ? -a : a)
+
void Table::putCell(unsigned row, unsigned col, const char* rawValue) {
Cell* newCell;
@@ -31,7 +33,7 @@ void Table::putCell(unsigned row, unsigned col, const char* rawValue) {
double intParse = atoi(rawValue);
double doubleParse = atof(rawValue);
- newCell = (doubleParse - intParse > 0.00001 && doubleParse > 0.00001)
+ newCell = (abs(doubleParse) - abs(intParse) > 0.00001)
? (Cell*)new CellDouble(doubleParse) : (Cell*)new CellInt(intParse);
}
else {