diff options
| Commit | 827f0a8227b7db8ddf3f7ec0fa39bb945ea13bdb (patch) | |
|---|---|---|
| Author | 2022-05-28 16:39:09 +0300 | |
| Committer | 2022-05-28 16:39:09 +0300 | |
| Files | ff3ab2019a0c8a52e739c4885d2fca42125a4e3c /src | |
| FMI-OOP-P2_Tables-827f0a8227b7db8ddf3f7ec0fa39bb945ea13bdb.tar FMI-OOP-P2_Tables-827f0a8227b7db8ddf3f7ec0fa39bb945ea13bdb.tar.gz FMI-OOP-P2_Tables-827f0a8227b7db8ddf3f7ec0fa39bb945ea13bdb.zip | ||
| Parent | 73eca0c881f1304f0eac9971f357a9155d2c6c4c (diff) | |
Autocommit at 28.05.2022 @ 16:39
1 files changed, 7 insertions, 4 deletions
| -rw-r--r-- | src/Models/CellFormula.cpp | 11 |
diff --git a/src/Models/CellFormula.cpp b/src/Models/CellFormula.cpp index d47870d..1f5b766 100644 --- a/src/Models/CellFormula.cpp +++ b/src/Models/CellFormula.cpp @@ -6,16 +6,19 @@ double CellFormula::calculate(unsigned index) { double lval = CellDouble(formula[index].left->getValue()).getValue(); switch(formula[index].right) { - plus: return lval + calculate(index++); - minus: return lval - calculate(index++); - mult: return lval * calculate(index++); - div: return lval / calculate(index++); + case plus: return lval + calculate(index++); + case minus: return lval - calculate(index++); + case mult: return lval * calculate(index++); + case div: double rval = calculate(index++); + if (rval == 0) throw std::overflow_error("Divide by zero exception"); + return lval / rval; default: return lval; } } String CellFormula::getValueForPrint() { double result = calculate(); + return ""; } |
