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}}