Cy,
That's exactly the situation, when multiple dataypes are involved in any language you must understand how they promote from one type to another.
>You know, I'm not sure you could do the steps in question in C++ and get the correct answer either. As you said, it's a fact of working this way. As a matter of fact, the only reason a calculator would not show this problem is because on most calculators there is no way to imput 1/3, you must enter an approximation, which if you put the same one in twice would probably work depending on how deep you went in your approximation.