diff options
Autocommit at 29.05.2022 @ 10:14
2 files changed, 4 insertions, 3 deletions
| -rw-r--r-- | src/Models/CellFormula.cpp | 3 | ||||
| -rw-r--r-- | src/Models/Table.cpp | 4 |
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 { |
