[apps] Operations in double when precision required

Change-Id: I7168a861a76178f0bf81841e9378f7399f67914a
This commit is contained in:
Émilie Feral
2017-08-04 18:24:09 +02:00
parent 82e212e771
commit f0a776a670
82 changed files with 494 additions and 463 deletions

View File

@@ -20,12 +20,12 @@ void IntervalParameterController::willDisplayCellForIndex(HighlightCell * cell,
FloatParameterController::willDisplayCellForIndex(cell, index);
}
bool IntervalParameterController::setParameterAtIndex(int parameterIndex, float f) {
bool IntervalParameterController::setParameterAtIndex(int parameterIndex, double f) {
if (f < 0) {
app()->displayWarning(I18n::Message::ForbiddenValue);
return false;
}
float parameter = std::round(f);
double parameter = std::round(f);
if (parameterIndex == 2 && parameter == 0.0f) {
parameter = 1.0f;
}

View File

@@ -9,7 +9,7 @@ class IntervalParameterController : public Shared::IntervalParameterController {
public:
IntervalParameterController(Responder * parentResponder, Shared::Interval * interval);
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
bool setParameterAtIndex(int parameterIndex, float f) override;
bool setParameterAtIndex(int parameterIndex, double f) override;
};
}

View File

@@ -46,7 +46,7 @@ IntervalParameterController * ValuesController::intervalParameterController() {
return &m_intervalParameterController;
}
bool ValuesController::setDataAtLocation(float floatBody, int columnIndex, int rowIndex) {
bool ValuesController::setDataAtLocation(double floatBody, int columnIndex, int rowIndex) {
if (floatBody < 0) {
return false;
}

View File

@@ -15,7 +15,7 @@ public:
I18n::Message emptyMessage() override;
IntervalParameterController * intervalParameterController() override;
private:
bool setDataAtLocation(float floatBody, int columnIndex, int rowIndex) override;
bool setDataAtLocation(double floatBody, int columnIndex, int rowIndex) override;
int maxNumberOfCells() override;
int maxNumberOfFunctions() override;
constexpr static int k_maxNumberOfCells = 30;