SAGA Raster volume with
 Count Only Above Base Level option (
Base Level= 0) will be fine.
If you are unsure about the output value, please ensure your CRS is in line with your expected output units (CRS can be in degrees, meters, and ft).
[SAGA Raster volume]
This tool is usually used for a single raster DEM volume above/below a base level (such as sea surface). To calculate the volume between two raster surface, your approach is the most appropriate. If one of your layer is always higher than the other (that means your 3rd layer is always positive),
 Count Only Above Base Level will do the job.
Some additional notes you may be interested in:
- If there is negative value in your 3rd layer, that part is covered by
 Count Only Below Base Level. (This becomes important when raster layers are crisscrossing...one layer can be above or below the other.)
- So, you may think options
 are similar to
cut & fill operation.
- About the accuracy: ... The measurement is based on map unit. If there is doubt, please double-check your projection CRS and measurement unit in the Project menu.
- Please also note this tool calculate the volume over the entire region. If you need to limit the area (e.g. only inside a polygon) please clip the raster by the polygon as a pre-processing.
- This tool is to calculate so-called "clumps", which is a kind of mass (body) of categorical cells.
- Input is commonly taken from
r.volume is somewhat like cell-counts. It is not for continuous cell values.