# Cplex giving different solutions for equivalent Linear problems

I'm trying to simplify a linear problem by removing "useless" variables and constraints. After simplifying my initial problem and solving both instances with Cplex, it seems like the results differ but are still really close.

Initial problem
objectiveValue ="-606445.47942015168"

I'm also interested in a dual value of some constraint.

dual="-17.47725841435172"

Simplified Problem

objectiveValue="-606445.47942014073"

dual="-17.6343"

In order to understand what I was doing wrong, I tried to simplify the original problem step by step. After some simplification steps which didn't modify the solution, I'm facing this simple constraint :

QStockeeContrat_(2)(Sc0)(ATS_SereneAtlantique)(07d03d2020)#1 - qStockee_(8)(Sc0)(PITS_SereneAtlantique)(07d03d2020)#7 = 0

Then I decide to replace qStockee_(8)(Sc0)(PITS_SereneAtlantique)(07d03d2020)#7 variable by QStockeeContrat_(2)(Sc0)(ATS_SereneAtlantique)(07d03d2020)#1 variable in every constraint and in the objective function. However the results before and after this change are different as I mentionned before.

Can anyone explain to me why that is happening ?

Cplex checks the feasiblity and optimality of the solution in floating point arithmetic. The default tolerance is $$1e-6$$, which means that a solution can violate the constraints by up to $$1e-6$$ and the solution is still considered feasible. This also holds for the optimality certificates of the solution.