there is a function called round() that can assist in rounding to a specified place.
In trying to duplicate your result it became clear that the numbers you were multiplying were not what you have shown here. In row 7 the dislayed values are rounded in column D.
This problem comes up often here becuase there is a difference between the value in the cell AND the value Numbers displays. youn should round all numbers in all calculations to the number of places you want by using the round function.
In D7 it is clear you applied visual rounding by the number itslef that is stored in the cell has many decimal places.the values in column D should be calculated as follows:
I just duplicted that portions of your table that I needed: