The mere fact that a calculator gives you different results does not mean COBOL is wrong. You do not understand how COBOL calculates and uses intermediate results -- and therefore your statements about what the results "should" be are completely and utterly WRONG.
Example: for WS-R2, COBOL divides first and comes up with 0.890 and some fraction. The fraction is truncated since the maximum number of digits after the decimal point is 3 in your two variables, so the intermediate result is 0.890. This is multiplied by 100 giving 8.90 -- and this is not a wrong calculation; this is the way COBOL works.
If you ever take a class in numerical computation, you will discover that such results are normal (not specific to COBOL, either), expected, and one reason that multiplication should be done before division when doing calculations. Do not compare the results of a computer language calculation with results from a calculator, or Excel, or anything else and expect the results to match -- they may, but they may not. And this is normal.