In IEEE 754 the 23 bit mantissa is expanded with an implied 1, so the resolution is actually 1 in 2^24-1 (16777215), but the principle is the same. You cannot increase an IEEE 32 bit float beyond 16777215 by adding 1 to it. And if you are adding numbers smaller than 1 then that limit decreases dramatically.
To add to the float woes, there are many numbers which cannot be represented exactly in a float, for example, a fraction Y/10*n where Y and N are integers and Y/10^n<>1/2^N ie, .1, .01, .001, .2, .02, .002, etc, cannot be represnted precisely. A very close approximation can be had and the error will be essentially negligible for a single calculation, but when you do the calculation over and over the error can begin to become significant. Best to use integers and stack them until you have enough bits. You can find sundry methods for doing 32 bit and 64 bit computations using 16 bit processors on the internet. However unless I'm mistaken the S7 300 is a 32 bit machine, and if four billion is a large enough number then using integers for totalizng becomes trivial - doing a single floating point operation to scale the final result.
Finally, the answer to Roy's question is very important, because if you are totalizing from an analog flow meter then we need to change the direction of this thread.