There's no need to store it as decimal at all, store it as binary instead (assuming you need to store it at all?) and only convert it when you need to display it as decimal.
Likewise, there IS no decimal point (or there shouldn't be!), floating point maths is long, complicated, slow, and inaccurate - stick to integers instead.
If you check my analogue tutorials you'll see what I mean!.
My analogue tutorial board is set to give an input range of 0-10.23V, with the A2D giving out 0-3FF. To display it I use a 16 bit binary to decimal conversion routine - this returns each digit in a register, named Units, Tens, Hundreds, and so on.
As the input value is 10 bit (maximum 1023) we can ignore the Tenthousands register, and just use the bottom four. We know that 1023 actually represents 10.23V, so we simply display the Thousands register, the Hundreds register, display a decimal point, then the Tens register, followed by the Units register.
Dead easy, no messing about with decimal points, we already know EXACTLY where it should be placed, and insert it accordingly.