From cd40b3479f8ce874cc69663b7318dc9f033ed1f1 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sun, 29 May 2022 10:14:27 +0300 Subject: Autocommit at 29.05.2022 @ 10:14 --- src/Models/CellFormula.cpp | 3 +-- src/Models/Table.cpp | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src/Models') 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 { -- cgit v1.3.1-26-gb76a