Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Models / CellFormula.cpp
diff options
context:
space:
mode:
Commit827f0a8227b7db8ddf3f7ec0fa39bb945ea13bdb (patch)
Author
 Syndamia <kamen@syndamia.com>
2022-05-28 16:39:09 +0300
Committer
 Syndamia <kamen@syndamia.com>
2022-05-28 16:39:09 +0300
Filesff3ab2019a0c8a52e739c4885d2fca42125a4e3c /src/Models/CellFormula.cpp
FMI-OOP-P2_Tables-827f0a8227b7db8ddf3f7ec0fa39bb945ea13bdb.tar
FMI-OOP-P2_Tables-827f0a8227b7db8ddf3f7ec0fa39bb945ea13bdb.tar.gz
FMI-OOP-P2_Tables-827f0a8227b7db8ddf3f7ec0fa39bb945ea13bdb.zip
Parent73eca0c881f1304f0eac9971f357a9155d2c6c4c (diff)
Autocommit at 28.05.2022 @ 16:39
1 files changed, 7 insertions, 4 deletions
-rw-r--r--src/Models/CellFormula.cpp11
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 "";
}