Akatsukami and Robert have given you information which will resolve your questions.
So, some advice. In a COMPUTE, I always use brackets/parentheses so that the compiler will achieve the calculation I want without me having ensure the order of coding, and without hoping that the next person does the same. Always use brackets/parentheses in COMPUTE unless trivial. If trivial, why use COMPUTE?
You must ensure that your output fields are big enough and have enough (including zero) decimal places to satisfy your requirement. IBM COBOL will just truncate the result. I think Akatsukami is correct about the other COBOL you used - the result was not stored in B because it would not fit.
IBM COBOL has a compile option, DIAGTRUNC, which can warn you of obvious potential truncation. It can be good to use as a beginner, but rather than relying on the compiler, it is much more important to know
that all your fields are of the correct size. Then you don't need DIAGTRUNC. If doing deliberate truncation (which there are many reasons for) then DIAGTRUNC gets in the way
From the section of the manual Robert suggested and from the description of COMPUTE with regard to precedence, work through an example with pencil and paper, behaving exactly as the compiler does.
Then have a go at this:
COMPUTE A ROUNDED = (( B / C ) + D) * 100
Assume that all fields are COMP-3/PACKED-DECIMAL with two decimal places and five before the (assumed) decimal point.
Make B 50, C 6, D 18.
First see what result the compiler produces. Then go through it on paper and see if you can work out how it "goes wrong". Let us know if you have questions, or get the answers.
EDIT. Thinking about it, initial value of C change to 6 from 3.