You can avoid round-off error in the steps by rationalizing the problem and solving it symbolically and then finding the numerical value of the answer.
In[18]:= res =
Solve[Rationalize[(-0.363700352*10^-2)*x^3 - .4041941000*x^2 +
3.397775673*x - 2.377540486 == 0, 10^-16], x];
In[19]:= N[res, 16]
Out[19]= {{x ->
7.123944370913387 + 0.*10^-16 I}, {x -> -119.02869068703848 +
0.*10^-15 I}, {x -> 0.7709248124293782 + 0.*10^-17 I}}