diff --git a/apps/calculation/calculation_store.cpp b/apps/calculation/calculation_store.cpp index f6028d79a..fbac03577 100644 --- a/apps/calculation/calculation_store.cpp +++ b/apps/calculation/calculation_store.cpp @@ -3,6 +3,7 @@ #include #include #include +#include "../exam_mode_configuration.h" #include using namespace Poincare; @@ -98,6 +99,10 @@ ExpiringPointer CalculationStore::push(const char * text, Context * constexpr static int numberOfOutputs = Calculation::k_numberOfExpressions - 1; Expression outputs[numberOfOutputs] = {Expression(), Expression(), Expression()}; PoincareHelpers::ParseAndSimplifyAndApproximate(inputSerialization, &(outputs[0]), &(outputs[1]), context, Poincare::ExpressionNode::SymbolicComputation::ReplaceAllSymbolsWithDefinitionsOrUndefined); + if (ExamModeConfiguration::exactExpressionsAreForbidden(GlobalPreferences::sharedGlobalPreferences()->examMode()) && outputs[1].hasUnit()) { + // Hide results with units on units if required by the exam mode configuration + outputs[1] = Undefined::Builder(); + } outputs[2] = outputs[1]; int numberOfSignificantDigits = Poincare::PrintFloat::k_numberOfStoredSignificantDigits; for (int i = 0; i < numberOfOutputs; i++) {